控制页面缓存的使用

控制页面缓存的使用

我们现在所处的不幸情况是,从历史上看,我们一直在向本地虚拟机过度配置 RAM,并且我们开始达到实际使用的极限,中午的峰值可能会导致主机 OOM 。目前,我们看到 VMware 的气球驱动程序启动,从缓存中回收 RAM,但我们的一些应用程序对这种特殊的钝器(即 Elasticsearch)很敏感,从而导致 oom-killer 触发。

我一直在寻找一个可调参数,使较旧的非活动页面在一段时间后从缓存中逐出,而不是驻留在那里直到某种争用将它们抛出。看起来 RHEL 5 必须/proc/sys/vm/pagecache至少定义一个缓存可以消耗多少总体空间的比率,但这甚至没有持续到 RHEL 6,我对此并不感到非常惊讶,因为比率方法显然“闻起来很糟糕”并且已经有min_free_kb实现相同目标的方法,但效果更好。

是否有我在某处错过的“缓存过期”可调参数,或者可能是另一种清除缓存的方法,但它不像 那样激进sync; echo 1 > /proc/sys/vm/drop_caches

作为记录,我知道真的解决方案是“使用更少的内存”和/或“获得更多的内存”,我非常大声地发出这些警报,但业务部门批准任何行动方案的速度很慢,我需要在此期间以某种方式解决这个问题。

相关内容