回到这个问题:
有一个用例,其中监控工具非常基本,并且我们无法将 SNMP 添加到服务器。我们不断收到内存使用失控的警告 - 然而,这只是磁盘缓存。我仍然想在服务器上针对实际问题设置监控警报,但不能将其设置为 99%,我想将磁盘缓存的内存使用率限制在 90% 左右,这样如果它确实超过了这个值如果您遵循,我们就能收到“真正”的警报。
克里斯的回答(在之前的问题上)似乎是最好的。
关于如何实现这一目标还有其他建议吗?
答案1
您的建议是减少磁盘内存缓存以满足监控要求。这是次优的,我强烈建议不要这样做。磁盘缓存的性能提高可能是对资源的最佳利用,降低磁盘缓存的性能类似于从计算机中移除内存芯片并将其扔掉。
监控软件叫什么?它有可能正在读取meminfo吗?如果是这样,我会考虑使用LD_PRELOAD
(https://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick)来伪装它正在读取的文件,并可能更改它正在读取的内容以将真正的值 free 替换为cache+buffer+free。在不知道该软件是什么的情况下,我无法提出任何其他想法。也许您可以更改 $PATH 以便free
找到不同的副本?
如果您沿着这条路线走下去,LD_PRELOAD
您将考虑open
用您自己的呼叫替换该呼叫,以便如果访问,则可以使用/proc/meminfo
修改后的副本。/tmp/