安装大量 RAM 后,Linux 将进入交换区

安装大量 RAM 后,Linux 将进入交换区

我有一个用作 SAN 存储的 Linux 机器。它配备了 14 个 SATA HDD,它运行的唯一软件是 iscsi target 和 zabbix agent。这是物理机器,不是 VM。

安装的 RAM 大小为 128 GB,交换空间安排为 4 GB,当 RAM 很大时,没有人会关心它的大小,但随着盒子的运行(正常运行时间为 694 天),交换空间的使用越来越多,现在已使用约 80%。

htop 不会显示任何错误,看起来操作系统使用 RAM 作为缓存等。swappiness设置为 10,然后设置为 1,没有任何帮助。当然我可以完全禁用交换,但看起来这将是一个糟糕的举动。

所以我的问题很简单,我怎样才能将盒子设置为使用 RAM 而不使用交换,以及为什么在 RAM 足够的情况下它却使用交换?

这是 SAN,因此它服务于块而不是文件,因此缓存可以在块基础上完成,并且如果 RAM 有限,可以轻松减少,无论如何它都不会影响 iSCSI 的逻辑。

Zabbix 说现在我有可用的 RAM = 123.22 GB(嘿,几乎全部 128 GB!),使用的交换空间是 4 GB 中的 3.24 GB。

答案1

没问题。即使还有可用的 RAM,Linux 内核也会将几乎从未使用的内存页移到交换空间中。

最好将暂时不活动的内存页面换出,将经常使用的数据保留在缓存中;这是内核所期望的情况。

vfs_cache_pressure您可以使用(控制内核回收用于缓存目录和 inode 对象的内存的趋势)和swappiness(控制内核交换内存页面的积极性:值越高积极性越高,值越低减少交换量)对此进行更多控制。

您可以在 中找到这些设置 /etc/sysctl.conf

相关内容