我有一个用作SAN存储的linux盒。它配备了14个SATA,它运行的唯一软件是iscsi target和zabbix代理。这是物理盒,不是VM。
内存容量为128 GB,内存大小为4GB,当内存很大时,没有人会注意到它的大小,但是随着内存的正常运行(正常运行时间为694天),交换设备的使用越来越多,现在已经使用了80%。
htop不会显示任何不好的东西,看起来操作系统使用RAM作为缓存等等。swappiness
被设置为10,然后设置为1,没有任何帮助。当然,我可以完全禁用交换,但看起来这将是不好的举动。
所以我的问题很简单,我如何设置盒子使用RAM而不使用交换,为什么它使用交换,而RAM是足够的?
这是SAN,所以它提供块而不是文件,所以缓存可以在块的基础上完成,而且如果内存有限,它也不会影响iSCSI的逻辑。
Zabbix说,现在我有内存可用= 123.22 GB (嘿,几乎所有128 GB!),交换使用的是3.24GB的4GB。
发布于 2020-03-11 00:27:24
没有问题。即使仍然有可用的RAM,Linux内核也会将内存页移动到交换空间中。
在缓存中保存经常使用的数据,交换已经不活跃了一段时间的内存页是很好的;这是内核所希望的情况。
您可以通过使用vfs_cache_pressure
(它控制内核回收用于缓存目录和inode对象的内存的倾向)和swappiness
(控制内核如何主动地交换内存页:更高的值将增加侵略性,更低的值将减少交换的数量)来对此进行更多的控制。
您可以在/etc/sysctl.conf
中找到这些设置。
https://serverfault.com/questions/1006461
复制相似问题