限制 RedHat 上的磁盘缓存

限制 RedHat 上的磁盘缓存

回到这个问题:

如何全局禁用或限制磁盘缓存内存使用?

有一个用例,其中监控工具非常基本,并且我们无法将 SNMP 添加到服务器。我们不断收到内存使用失控的警告 - 然而,这只是磁盘缓存。我仍然想在服务器上针对实际问题设置监控警报,但不能将其设置为 99%,我想将磁盘缓存的内存使用率限制在 90% 左右,这样如果它确实超过了这个值如果您遵循,我们就能收到“真正”的警报。

克里斯的回答(在之前的问题上)似乎是最好的。

关于如何实现这一目标还有其他建议吗?

答案1

您的建议是减少磁盘内存缓存以满足监控要求。这是次优的,我强烈建议不要这样做。磁盘缓存的性能提高可能是对资源的最佳利用,降低磁盘缓存的性能类似于从计算机中移除内存芯片并将其扔掉。

监控软件叫什么?它有可能正在读取meminfo吗?如果是这样,我会考虑使用LD_PRELOADhttps://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick)来伪装它正在读取的文件,并可能更改它正在读取的内容以将真正的值 free 替换为cache+buffer+free。在不知道该软件是什么的情况下,我无法提出任何其他想法。也许您可以更改 $PATH 以便free找到不同的副本?

如果您沿着这条路线走下去,LD_PRELOAD您将考虑open用您自己的呼叫替换该呼叫,以便如果访问,则可以使用/proc/meminfo修改后的副本。/tmp/

相关内容