Linuxがメモリ不足(OOM)になると、OOMキラーはいくつかのヒューリスティックに基づいて強制終了するプロセスを選択します(興味深い記事です:http : //lwn.net/Articles/317814/)。
OOMキラーによって最近強制終了されたプロセスをプログラムで判別するにはどうすればよいですか?
Linuxがメモリ不足(OOM)になると、OOMキラーはいくつかのヒューリスティックに基づいて強制終了するプロセスを選択します(興味深い記事です:http : //lwn.net/Articles/317814/)。
OOMキラーによって最近強制終了されたプロセスをプログラムで判別するにはどうすればよいですか?
回答:
これを試してください:
grep -i 'killed process' /var/log/messages
/var/log/syslog
一部のディストリビューションと/var/log/messages
他のディストリビューションにあります。前者はDebian、後者はRed HatであるBICBWだと思います。
egrep
ここでは意味がありません。普通のgrep
、または具体的に言うとfgrep
、はるかに理にかなっています。(それに応じて回答を編集します。)
ログの場所を気にする必要がないように、これを試してください
dmesg | egrep -i 'killed process'
/var/log/messages
が、dmesg
/に表示されないという結果が表示されてい/var/log/dmesg
ます。構成の誤りの可能性もありますが、両方のアプローチを使用することをお勧めします。
dmesg -T
読み取り可能なタイムスタンプを取得するために使用することもお勧めします
現在、dstatは、実行中のシステムで、oomメカニズムによって強制終了される候補となるプロセスを見つける機能を提供します
dstat --top-oom
--out-of-memory---
kill score
java 77
java 77
java 77
とmanページに従って
--top-oom
show process that will be killed by OOM the first