Linux 系统中交换区的大小有关系吗

Linux 系统中交换区的大小有关系吗

如果 Linux 中的交换区域大小设置得太小(比如 1Gb),而主 RAM 又太大,这有关系吗128Gb

我们是否应该始终将交换区域的数量设置为 RAM 数量的两倍?

更新:

嗨,谢谢大家回答这个问题。事实上,我有这个问题是因为我们在使用小型集群系统时遇到了一些问题。问题发布在这里下面这张图是这个小集群里部分计算机的一些信息。

信息

MEMTOT该机器的RAM总量, 是SWAPTO该机器的SWAP区域总量, 是SWAPUSSWAP区域的使用量。如图所示,SWAP的使用量确实很少。

当尝试解决发布在这里,不知道是不是SWAP区域设置过小了,只是1Gb相对于128Gb,如图。于是就有了这个问题。抱歉在原帖中没有把整个背景信息贴出来。之前我们也想过,如果RAM很大,可以把SWAP设置小一点。我们试过把 的SWAP设置为c014816Gb问题好像没出现(也许要长期观察它们的状态才能下这个结论)。

我们不是 Linux 系统的专业人士,我们无法解释为什么会发生这种情况。很可能这是一个集群系统,SGE 正在管理每台机器的资源,并且它需要有相对较大的 SWAP,因为该机器可能被许多用户提交的许多作业使用。

另外,如果将SWAP的数量设置过大,会引发什么其他问题也是值得考虑的。

答案1

Linux 内核有一个设置来控制交换的使用频率,称为swappiness,描述如下https://unix.stackexchange.com/questions/88693/why-is-swappiness-set-to-60-by-default

swappiness 为零表示只有系统内存不足时才会使用交换。swappiness 为 100 则强制程序立即使用交换。

按照您喜欢的方式调整系统,但拥有 128 GB 的 RAM 不太可能让您的系统轻易耗尽内存,因此拥有 2/4 GB 的交换空间就足够了。不建议运行没有交换分区的系统,但这是可能的。

我认为交换区域为 RAM 大小两倍的规则已经过时了,并且只在 RAM 约为 1 GB 且始终处于满 RAM 使用边缘的系统上才有用。

答案2

我认为 2x 经验法则已经过时了。我们的工作站有 16GB 内存,我们通常只使用其中的 25% 左右,很少使用超过 50%。因此,就我们的目的而言,我们不使用任何交换空间。

既然你必须决定创建多少交换空间,而且理论上你选择的任何数字在某个时候都不够,那么为什么不选择 0 呢?或者 - 为什么不安装更多 RAM?

我相信这是一个非常个人化的决定,取决于你的计算机的使用方式和它有多少 RAM。

答案3

除非您要执行一些消耗内存的计算,否则根本不需要交换(但最好有较小的交换分区)。但是当您要使用挂起到磁盘时,需要有交换 > 内存。

相关内容