在 Linux 中应该使用多少交换空间?
交换大小应该是多少?交换区应该是 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 系统的交换大小是多少?