OOMキラーがsyslogにpidに関する情報を保存していることを知っていますが、終了したプロセスのcmdlineと所有者も収集したいと思います。
情報はデバッグおよびELKインジケータに関連しており、PIDだけでは役に立ちません。これを行うためのツールや簡単な方法が見つかりません。
どんな良いアイデアがありますか?
答え1
echo 1 > /proc/sys/vm/oom_dump_tasks
これは、メモリ不足エラー時にカーネルが表示できるほとんどの情報のようです。
https://www.kernel.org/doc/Documentation/sysctl/vm.txt
カーネルがOOMシャットダウンを実行すると、システム全体のジョブダンプ(カーネルスレッドを除く)を生成でき、pid、uid、tgid、vmサイズ、rss、nr_ptes、swapts、oom_score_adjスコア、名前などの情報が含まれます。これは、OOMキラーが呼び出された理由を特定し、イベントが発生した悪意のあるタスクを特定し、OOMキラーが終了したタスクを選択した理由を特定するのに役立ちます。
0 に設定すると情報は表示されません。何千ものジョブを含む非常に大きなシステムでは、各ジョブのメモリ状態情報をダンプすることは不可能です。これらのシステムは、情報が不要な場合にOOM条件のためにパフォーマンスが低下することを強制してはいけません。
0以外の値に設定すると、OOMキラーが実際にメモリを消費しているジョブを終了するたびにこのメッセージが表示されます。
編集する
~によるとカーネルによって終了されたプロセスのリストはどこで見ることができますか?
ここでプロセス会計が役に立つかもしれません。
簡単に言うと:
apt-get install acct
次に、次のコマンドを試してください。
lastcomm
sa
またはUbuntuから:
lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct
望むより: