关于交换空间,似乎每个人都有自己的想法,我也不例外。我所有的系统管理员朋友都有他们的观点,大多数发行版也提出了建议。
多年前,应该分配的交换空间大小的经验法则是计算机中安装的 RAM 量的 2 倍。当然,那是在典型计算机的 RAM 以 KB 或 MB 为单位衡量的时候。因此,如果计算机有 64KB 的 RAM,那么 128KB 的交换分区将是最佳大小。
这考虑到了 RAM 内存大小通常非常小的事实,并且为交换空间分配超过 2 倍 RAM 并不能提高性能。如果交换空间超过 RAM 的两倍,大多数系统花费在抖动上的时间比执行有用的工作的时间还要多。
RAM 内存已经变得非常便宜,现在许多计算机的 RAM 都在数十 GB 级别。我的大多数较新的计算机至少有 4GB 或 8GB 的 RAM,两台有 32GB,而我的主工作站有 64GB。在处理具有大量 RAM 的计算机时,交换空间的限制性能因素远低于 2 倍乘数。因此,建议的交换空间被认为是系统内存 *工作负载* 的函数,而不是系统内存。
表 1 提供了 Fedora 项目推荐的交换分区大小,具体取决于系统中的 RAM 量以及您是否希望系统有足够的内存来休眠。要允许休眠,您需要在自定义分区阶段编辑交换空间。“推荐”的交换分区大小在默认安装期间自动建立,但我通常发现它对于我的需求来说要么太大要么太小。
The Fedora 28 安装指南 定义了当前关于交换空间分配的思路。请注意,其他版本的 Fedora 和其他 Linux 发行版可能略有不同,但这与 Red Hat Enterprise Linux 用于其建议的表相同。自 Fedora 19 以来,这些建议没有改变。
系统中安装的 RAM 量 | 推荐的交换空间 | 带有休眠的推荐交换空间 |
---|---|---|
≤ 2GB | 2 倍 RAM | 3 倍 RAM |
2GB – 8GB | = RAM | 2 倍 RAM |
8GB – 64GB | 4G 到 0.5 倍 RAM | 1.5 倍 RAM |
>64GB | 最小 4GB | 不建议休眠 |
表 1:Fedora 28 文档中推荐的系统交换空间。
表 2 包含我根据多年来在多种环境中的经验提出的建议。
系统中安装的 RAM 量 | 推荐的交换空间 |
---|---|
≤ 2GB | 2 倍 RAM |
2GB – 8GB | = RAM |
> 8GB | 8GB |
表 2:我推荐的系统交换空间。
这两种表都不一定适用于您的环境,但它们将为您提供一个起点。主要考虑因素是,随着 RAM 量的增加,添加更多交换空间只会导致在交换空间接近填满之前就发生抖动。如果您的虚拟内存太少,您应该尽可能添加更多 RAM,而不是更多交换空间。
为了测试 Fedora(和 RHEL)交换空间建议,我在我的两个最大的系统(RAM 分别为 32GB 和 64GB 的系统)上使用了其 0.5*RAM 的建议。即使在运行四到五个 VM、LibreOffice 中的多个文档、Thunderbird、Chrome 网络浏览器、多个终端模拟器会话、Xfe 文件管理器和许多其他后台应用程序时,我看到任何交换空间使用的唯一时间是在我安排在每天早上大约 2 点进行的备份期间。即使在那时,交换空间使用量也不超过 16MB——是的,*兆字节*。这些结果适用于我的系统和我的负载,不一定适用于您的真实环境。
最近,我与 Opensource.com 的其他一些社区版主就交换空间进行了对话,我的朋友 Chris Short 是这个杰出而才华横溢的团队的成员之一,他向我指出了一篇旧文章,他在文章中建议使用 1GB 的交换空间。这篇文章写于 2003 年,他后来告诉我,他现在建议使用零交换空间。
所以,我们想知道,您怎么看?您在您的系统上推荐或使用什么交换空间?
38 条评论