如何决定掉期规模

Dee*_*put 20 swap

我只想确认Swap分区的大小应该是多少。很多地方都说交换大小应该是 RAM 大小的两倍。也有人告诉我,它不应该超过8 GB。如果RAM的两倍大小超过8 GB,那么Swap分区应该有多大?

A T*_*A T 14

下面的文字来自 nixCraft 页面Linux:你应该使用两倍的内存作为交换空间吗?. (请点击链接并阅读来源以获取更多信息)

请注意,nixCraft 页面引用了据称来自OpenBSD FAQ 的文本,但当前文档中没有匹配的文本;然而,这可能是 2006 年曾经存在的东西(因此 2 x RAM 规则在 10 多年前就已经过时了):

废话规则:服务器的主系统 RAM 大小的两倍

根据 OpenBSD 常见问题解答:

许多人遵循一个旧的经验法则,即您的交换分区应该是主系统 RAM 大小的两倍。这个规则是废话。在现代系统上,有很多交换,大多数人更喜欢他们的系统从不交换。您不希望系统用完 RAM+swap,但您通常希望系统中有足够的 RAM,这样它就不需要交换了。

更多来自 nixCraft 页面:

Red hat 建议对 RHEL 5 进行如下设置:

现实情况是,系统需要的交换空间量实际上并不是它拥有的 RAM 量的函数,而是该系统上运行的内存工作负载的函数。只要匿名内存 [没有文件或设备支持的内存映射:从操作系统堆栈和堆中获得的内存] 和系统 V 共享内存的总和是不到大约 3/4 的 RAM 量。在这种情况下,系统将简单地将匿名和系统 V 共享内存锁定到 RAM 中,并使用剩余的 RAM 缓存文件系统数据,因此当内存耗尽时,内核仅回收页面缓存内存。

考虑到: 1. 在安装时配置交换空间时,没有简单的方法来预先确定工作负载所需的内存,以及 2. 系统 RAM 越多,通常需要的交换空间越少,交换空间[可能沿着这一建议为CentOS Linux的7.x和RHEL 7]:

RHEL/CentOS 7 中交换空间的建议

因此 nixCraft 页面得出结论:

结论

如果 Linux 内核一次要使用超过 2GiB 的交换空间,所有用户都会感到很热。或者,您可以获得更多 RAM(推荐)并转向更快的存储以改进磁盘 I/O。没有规则,每个设置和配置都是独一无二的。根据您的要求调整值。选择适合您的掉期金额。

此外,这篇 Red Hat 文章:我们真的需要在现代系统上进行交换吗?(2017) 说:

我们对大多数现代系统的大小建议是“物理 RAM 的一部分”,例如 20%。有了这个,我们示例中痛苦缓慢的操作阶段不会持续那么长时间,OOM 会更早开始。

当然,也有需要不同行为的场景。当意识到这种行为时,这样的交换配置就可以了,并且可以在没有任何交换的情况下运行系统。我们也支持这样的系统 - 但客户应该知道在上述情况下的行为。