限制linux文件缓存内存使用(以避免虚拟机管理程序内存耗尽)

Rob*_*lla 5 virtualization linux cache kvm-virtualization

我有一台 16GB RAM 的服务器,运行多个 Linux 虚拟机(大约 10 个),这些虚拟机执行多个不同的任务。这些机器,使用默认配置,将用缓存填满我给它们的最大内存。

即使这对于物理主机来说是理想的行为,但在我的设置中,该缓存实际上正在消耗无法从主机释放的真实主机 RAM,并迫使我为虚拟机设置相对较低的 RAM 量(不超过 )(16 - host cache)/number of vms。这是非常不可取的,因为系统失去了灵活性,无法处理来自具体虚拟机的零星 RAM 请求。

我想到的唯一方法是限制内核可用于缓存的 RAM 量(或使缓存更快过期),但我还没有找到任何有关如何执行此操作的文档。大多数论坛帖子都引用了 linuxatemyram.com 或类似的内容,而且我似乎也没有在 /proc/sys/vm/ 下公开任何相关参数。

也许有人可以对此提供一些见解?我将非常感激。

Kha*_*led 1

您可以将 的值修改/proc/sys/vm/vfs_cache_pressure为大于 100(默认值)的值。当值增加超过 100 时,它会导致内核更倾向于回收 dentry 和 inode