Memory

Ubuntu如何檢測OOM殺手是否已經執行

  • July 31, 2019

我們使用 Nagios 來監控我們的伺服器。現在.. linux 使用了我們給他們的所有 RAM,所以沒有辦法檢測我們是否即將耗盡記憶體。由於記憶體使用過多,我們有幾次伺服器崩潰。

有什麼方法可以檢測 ubuntu(linux) 是否啟動 OOM 殺手?我知道它寫在日誌文件中,但有沒有辦法檢測它何時啟動?

/RJ

您無法看到 OOM 何時經過,唯一的方法是檢查日誌並希望它在那裡(有時它不會被記錄)。

有工具可以用 Nagios 檢查記憶體使用情況,我個人使用check_mem.pl

也許通過logtail

oom-killer 在 syslog 和 dmesg 中留下了執行的痕跡。您可以通過一些“logtails”系統日誌的監控工具放置一個 cron 作業或腳本來呼叫,並在執行之間是否有類似下面的行時警告您

Feb 24 13:35:29 hostname kernel: [22472693.216224] foobar:23 invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0

dmesg 不是“logtailable”,但dmesg -c在列印後會清除 dmesg 緩衝區,因此腳本可以簡單地呼叫dmesg -c | grep <string> | wc -l1 或更大的值意味著自 las 執行/啟動以來呼叫了 oom-killer。但這會破壞您 dmesg 儲存的資訊。

引用自:https://serverfault.com/questions/415499