OOMキラーログで完全なプログラムコマンドライン引数を表示する


8

OOMキラーログで完全なプログラムコマンドライン引数を表示することは可能ですか?/ var / log / syslogに今表示されているのは

Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child
Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB
beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
beam.smp cpuset=/ mems_allowed=0-3

私のマシンには多くのBeam.smpプロセスがあり、OOMキラーによってどのプロセスが強制終了されたかを調べるのはあまり便利ではありません。

回答:


4
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、swapents、oom_score_adjスコア、名前などの情報を含めます。これは、OOMキラーが呼び出された理由を特定し、それを引き起こした不正なタスクを特定し、OOMキラーが殺したタスクを選択した理由を特定するのに役立ちます。

これがゼロに設定されている場合、この情報は抑制されます。何千ものタスクがある非常に大規模なシステムでは、それぞれのメモリ状態情報をダンプするのは現実的ではない場合があります。このようなシステムは、情報が必要とされない可能性があるOOM状態でパフォーマンスの低下を強いられるべきではありません。

これがゼロ以外に設定されている場合、この情報は、OOMキラーがメモリを消費するタスクを実際に強制終了するたびに表示されます。


1
echo 1 > /proc/sys/vm/oom_dump_tasks

私にはあまり役に立ちませんでした-ログにはまだコマンドラインパラメーターがありません。
killされたプロセスのコマンドラインを遡及的に表示するには、topを使用てシステムアクティビティを記録します。
oom-killerがs / thを強制終了した場合は、その時間のログを開いて、/ var / log / syslogからPIDでプロセスを見つけ、 'c'キーを押してプロセスのコマンドラインを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.