在 Linux 中应该使用多少交换空间?在 Linux 中应该使用多少交换空间?在 Linux 中应该使用多少交换空间?在 Linux 中应该使用多少交换空间?
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Linux 中应该使用多少交换空间?

发表 admin at 2025年2月28日
类别
  • 未分类
标签

交换大小应该是多少?交换区应该是 RAM 大小的两倍还是应该是 RAM 大小的一半?如果我的系统有几 GB RAM,我是否需要交换空间?您的问题将在这篇详细的文章中得到解答。

交换大小应该是多少?交换区应该是 RAM 大小的两倍,还是应该是 RAM 大小的一半?如果我的系统有几 GB RAM,我是否需要交换空间?

也许这些是安装 Linux 时有关选择交换大小的最常见问题。

这不是什么新鲜事。关于交换大小一直存在很多混乱。

长期以来,建议的交换大小是 RAM 大小的两倍,但这条黄金法则不再适用于现代计算机。我们的系统 RAM 大小高达 128 GB;许多旧电脑甚至没有这么多硬盘。

但是,您会为具有 32 GB RAM 的系统分配多少交换大小? 64GB?这对硬盘来说是一种荒谬的浪费,不是吗?

在了解应该有多少交换大小之前,让我们快速了解一下有关交换内存的一两件事。这将帮助您理解为什么使用交换。

为了(几乎)每个人都能理解,解释已经被简化。

什么是交换?什么时候使用交换?

您的系统在运行应用程序时使用随机存取存储器(又名 RAM)。当只有少数应用程序运行时,您的系统将使用可用 RAM 进行管理。

但如果运行的应用程序过多或应用程序需要大量 RAM,您的系统就会遇到麻烦。如果应用程序需要更多内存,但整个 RAM 已被使用,则应用程序将崩溃。

当 RAM 耗尽时,交换充当系统的喘息机会。这里发生的情况是,当 RAM 耗尽时,您的 Linux 系统会使用部分硬盘内存并将其分配给正在运行的应用程序。

听起来很酷。这是否意味着如果您分配 50GB 的交换大小,您的系统可以同时运行数百个甚至数千个应用程序? 错误!

你看,速度在这里很重要。 RAM 以纳秒量级访问数据。 SSD 访问数据的时间为微秒,而普通硬盘访问数据的时间为毫秒。这意味着 RAM 比 SSD 快 1000 倍,比普通 HDD 快 100,000 倍。

如果应用程序过于依赖交换,其性能将会下降,因为它无法以与 RAM 中相同的速度访问数据。因此,完成一项任务可能需要几分钟,而不是 1 秒。这将使应用程序几乎毫无用处。这在计算术语中称为抖动。

换句话说,进行一点交换是有帮助的。很多都没有什么用处。

为什么需要交换?

您需要交换的原因有多种。

  • 如果您的系统 RAM 小于 1 GB,则必须使用交换,因为大多数应用程序很快就会耗尽 RAM。

  • 如果您的系统使用视频编辑器等资源密集型应用程序,那么最好使用一些交换空间,因为您的 RAM 可能会耗尽。

  • 如果使用休眠,则必须添加交换,因为RAM的内容将被写入交换分区。这也意味着交换大小应至少为 RAM 的大小。

  • 避免奇怪的事件,例如程序发疯和吃掉 RAM。

如果你有很多 RAM,你需要交换吗?

这确实是一个好问题。如果您有 32GB 或 64GB RAM,您的系统可能永远不会使用整个 RAM,因此它永远不会使用交换分区。

但你会抓住这个机会吗?我猜如果你的系统有 32GB RAM,那么它也应该有 100GB 的硬盘。分配几 GB 的交换空间不会有什么坏处。如果有问题的程序开始滥用 RAM,它将提供额外的“稳定性”层。

没有swap可以使用Linux吗?

是的,可以,特别是如果您的系统有足够的 RAM。但正如上一节所解释的,进行一点交换始终是可取的。

事实上,像 Ubuntu 这样的发行版会自动创建一个 2 GB 大小的交换文件。这应该表明建议您拥有一些交换空间。

如果您在安装 Linux 时没有创建交换分区,请不要担心。您随时可以在 Linux 中创建交换文件。

交换大小应该是多少?

现在是一个大问题。 Linux 安装的理想交换空间应该是多少?

这里的问题是这个交换大小问题没有明确的答案。只是有一些建议。

不同的人对理想的交换大小有不同的看法。即使主要的 Linux 发行版也没有相同的交换大小指南。

如果您遵循 Red Hat 的建议,他们建议现代系统的交换大小为 RAM 的 20%(即 4GB 或更高 RAM)。

CentOS 对于交换分区大小有不同的建议。它建议交换大小为:

  • 如果 RAM 小于 2 GB,则为 RAM 大小的两倍

  • RAM 大小 + 2 GB(如果 RAM 大小超过 2 GB,即 3GB RAM 需要 5GB 交换空间)

Ubuntu 对交换大小有完全不同的看法,因为它考虑了休眠。如果您需要休眠,则需要为 Ubuntu 交换 RAM 大小。

否则,它建议:

  • 如果 RAM 小于 1 GB,则交换大小应至少为 RAM 大小,最多为 RAM 大小的两倍

  • 如果 RAM 大于 1 GB,则交换大小应至少等于 RAM 大小的平方根,最多为 RAM 大小的两倍

  • 如果使用休眠,交换大小应等于 RAM 大小加上 RAM 大小的平方根

使困惑?我知道这很令人困惑。这就是为什么我创建了这个表,它将根据您的 RAM 大小和休眠需求为您提供 Ubuntu 建议的交换大小。

RAM Size Swap Size (Without Hibernation) Swap size (With Hibernation)
256MB 256MB 512MB
512MB 512MB 1GB
1GB 1GB 2GB
2GB 1GB 3GB
3GB 2GB 5GB
4GB 2GB 6GB
6GB 2GB 8GB
8GB 3GB 11GB
12GB 3GB 15GB
16GB 4GB 20GB
24GB 5GB 29GB
32GB 6GB 38GB
64GB 8GB 72GB
128GB 11GB 139GB

您使用多少交换空间?

答案从来都不简单。正如我之前所说,长期以来,交换区一直被建议为 RAM 大小的两倍。事实上,我的 Dell XPS 13 Ubuntu 版本具有 16GB 交换大小和 8GB RAM。因此,即使是戴尔也决定遵循交换=2xRAM 的黄金法则。

您更喜欢 Linux 系统的交换大小是多少?

©2015-2025 Norria support@alaica.com