交换空间是每个人似乎都有想法的事情之一,我也不例外。 我所有的系统管理员朋友都有他们的意见,而且大多数发行版也提出了建议。
很多年前,应该分配的交换空间大小的经验法则是计算机中安装的 RAM 量的 2 倍。 当然,那是在典型计算机的 RAM 以 KB 或 MB 为单位进行测量的时候。 因此,如果计算机有 64KB 的 RAM,则 128KB 的交换分区将是最佳大小。
这考虑到了 RAM 内存大小通常很小,并且为交换空间分配超过 RAM 2 倍的量并不能提高性能。 交换空间超过 RAM 两倍时,大多数系统花费在抖动上的时间多于执行有用的工作。
RAM 内存已经变得非常便宜,现在许多计算机的 RAM 都达到数十 GB。 我大多数较新的计算机至少有 4GB 或 8GB 的 RAM,两台有 32GB,而我的主要工作站有 64GB。 在处理具有大量 RAM 的计算机时,交换空间的限制性能因素远低于 2 倍乘数。 因此,建议的交换空间被认为是系统内存工作负载的函数,而不是系统内存。
表 1 提供了 Fedora 项目建议的交换分区大小,具体取决于系统中的 RAM 量以及是否需要足够的内存来让系统休眠。 要允许休眠,您需要在自定义分区阶段编辑交换空间。 “建议的”交换分区大小在默认安装期间会自动建立,但我通常发现它对于我的需求来说要么太大,要么太小。
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 条评论