我有一个16GB内存的服务器运行几个Linux虚拟机(10左右),执行几个不同的任务。 这些具有默认configuration的机器将会填满我所提供的带有caching的最大内存。
即使对于物理主机来说,这是一个理想的行为,但是在我的设置中,这个caching实际上消耗了不能从主机上释放的真正的主机RAM,并迫使我设置相对较低的RAM数量(不超过(16 - host cache)/number of vms )。 这是非常不可取的,因为系统失去了灵活性,无法处理来自具体vms的零散RAM请求。
我想到的唯一方法是限制内核可用于caching的RAM数量(或使caching尽早过期),但是我还没有find有关如何执行此操作的任何文档。 大多数论坛post都是指linuxatemyram.com或者类似的,我似乎也没有在/ proc / sys / vm /下面公开任何相关的参数。
也许有些人可以提供一些见解呢? 我会很感激。
您可以将/proc/sys/vm/vfs_cache_pressure的值/proc/sys/vm/vfs_cache_pressure为大于100(默认值)的值。 随着数值增加超过100,它会导致内核更喜欢收回dentries和inode 。