今天我注意到我发现了以下内容:
如您所见,RAM 几乎是一半空闲,交换空间的使用率非常高。根据我的教科书知识,我曾经认为 Linux OS 试图充分利用 RAM,当它的 RAM 不足时,它会将一些使用最少的页面从 RAM 移动到交换空间。
如果我的理论知识不正确,有人可以向我解释一下,并解释一下它在 Linux 世界中的实际工作原理。
今天我注意到我发现了以下内容:
如您所见,RAM 几乎是一半空闲,交换空间的使用率非常高。根据我的教科书知识,我曾经认为 Linux OS 试图充分利用 RAM,当它的 RAM 不足时,它会将一些使用最少的页面从 RAM 移动到交换空间。
如果我的理论知识不正确,有人可以向我解释一下,并解释一下它在 Linux 世界中的实际工作原理。
虽然内核确实使用交换,即使可能有剩余内存,但使用超过三分之二的内存可能表明历史上服务器可能内存不足,这就是它开始交换的原因。我会将交换使用情况与 sar 报告中的内存使用情况相关联,以推断系统是否有足够的内存。我还会检查 dmesg 或日志以确定服务器是否确实内存不足,并且 oom-killer 启动了。
即使您有大量可用内存,Linux 内核也会开始交换内存页面。您可以通过设置自定义交换来微调此行为。
http://en.wikipedia.org/wiki/Swappiness
对于服务器,如果您的工作负载始终有足够的内存,我建议将 swappiness 设置为 1。对于工作站,我建议使用默认值 60。
通过设置在 /etc/sysctl.conf 中永久设置
并重新加载它
不幸的是,有些应用程序会直接敲击交换,故意跳过 RAM。看着你,Chrome(有时还有 Photoshop)。让这些应用程序不进行交换的唯一方法是在没有交换分区的情况下运行。即使是 swappiness 0 IIRC 仍然会给他们访问权限,因为他们明确要求它。
不过,根据上述更改交换性将适用于其他所有内容。我建议使用 10-20 而不是 1 的值。