与Linux系统中交换区域的数量无关吗


12

如果Linux中的交换区域的数量设置得太小(例如1Gb),而主RAM是,这有关系128Gb吗?

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

更新:

嗨,谢谢大家回答这个问题。实际上,我有这个问题,因为在使用小型集群系统时我们遇到了一些问题。问题在此处发布。下图是有关此小型群集中某些计算机的一些信息。

信息

MEMTOT是该机器的RAM的总量中,SWAPTO是SW AP区域该机器的总量,并且SWAPUS是SWAP区域的使用量。如图所示,SWAP的使用确实很小。

如图中所示,当尝试解决在here中发布的那些问题时,我们不确定SWAP区域的数量是否设置得太小(与1Gb相对)128Gb。因此,我有这个问题。抱歉,我没有在这篇文章的原始版本中发布整个背景信息。在此之前,我们还认为如果RAM数量很大,我们可以将SWAP数量设置得很小。我们试图将SWAP设置c014816Gb,问题似乎不存在(也许我们应该在长期观察它们的状态之后得出这个结论)。

我们不是Linux系统方面的专家,我们无法解释为什么会这样。这很可能是集群系统,并且SGE正在管理每台计算机的资源,并且它需要具有相对大量的SWAP,因为该计算机可能由许多用户提交的许多作业使用。

另外,如果我们只是将SWAP的数量设置得太大,那么它还会引起什么其他问题也是值得考虑的。


1
如果您有128Gb的ram,并且开始交换-该系统可能已经失控,而且无论如何都会死掉。我个人可能会完全不交换就运行该服务器。OOMKiller应该先处理所有失控的过程,然后再用尽内存导致崩溃-无论如何,崩溃修复得更快。
瑞安·古勒

1
会是-什么?来自init的一些东西?某些实际需要内存的内存缓存会被扔掉吗?如果您的计算机需要交换内存以使其正常运行,则其过载,并且无论如何都需要扩大规模。
瑞安·古勒

1
@Ryan Gooler:如果您要进行科学仿真,则使用128 Gb或更高带宽的进程并非没有道理。
jamesqf 2015年


1
@RyanGooler足够正确。我的观点是,增加交换可以使程序消耗更多的物理内存。它只有几MB,但总比没有好:)
Navin

Answers:


19

Linux内核有一个设置来控制交换的使用频率,被称为swappiness在描述/unix/88693/why-is-swappiness-set-to-60-by-default

交换率为零表示仅当系统内存不足时才使用交换。交换率为100会强制程序立即使用交换。

随意调整系统的性能,但是拥有128 GB的RAM不太可能使系统容易地耗尽内存,因此拥有2/4 GB的交换就足够了。建议不要运行没有交换分区的系统,但这是可行的。

我认为交换区域的规则是RAM数量的两倍已过时,并且仅在大约1 GB RAM且始终处于完全RAM使用率边缘的系统上有用。


2
虽然设置swappiness为0似乎在具有大量RAM的情况下是合乎逻辑的,但最好将其保留为默认值60http : //unix.stackexchange.com/a/88820/50687
AL

1
是否有一些图形在一个轴上具有从0到100的可交换性,而在另一轴上有其他图形可显示……交换性取决于值?
user1306322 2015年

嗨,@ jcbermu,我已经更新了帖子,如果方便的话,请检查一下。
开采

5

我认为2倍经验法则已过时。我们的工作站具有16GB的内存,我们通常只使用其中的25%,而很少使用50%以上。因此,出于我们的目的,我们不使用任何交换。

由于必须决定要创建多少交换空间,并且理论上选择的任何数字在某个时候都不够,所以为什么不选择0?或者-为什么不安装更多的RAM?

我相信这是一个非常个人的决定,具体取决于您将如何使用计算机以及拥有多少RAM。


嗨,@ gjcamnn,谢谢您的答复。我已经更新了帖子,如果方便的话,请检查一下。
开采

0

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


嗨,@ ustp,感谢您的答复。我已经更新了帖子,如果方便的话,请检查一下。
开采
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.