勉強前イメージ
メモリとかCPUのクリーニング的な?
調査
OOM Killer とは
Out of Memory Killer の略で、Linuxのカーネル機能になります。
物理のメモリまたSwapメモリが枯渇した際に、必要なメモリ領域を確保出来ない時
プロセスを強制的に終了させてメモリ領域を確保する仕組みになります。
プロセスが終了するより、メモリが足らずにシステムが停止することを避けるために用意されています。
OOM Killerによって殺されるプロセスは
各プロセスのoom_score値が高いものを選択して強制終了させます。
oom_scoreの値は /proc/pid/oom_score
で確認できます。
コマンドとしては grep "" /proc/*/oom_score
で確認できます。
[root@localhost ~]# grep "" /proc/*/oom_score
/proc/1/oom_score:0
/proc/10/oom_score:0
/proc/1012/oom_score:10
/proc/1013/oom_score:2
/proc/1014/oom_score:0
/proc/1016/oom_score:0
/proc/1018/oom_score:0
もしOOM Killerでもプロセスを殺されたくない場合は /proc/pid/oom_adj に -17 を書き込むことで除外できます。
oom_adj の中身は以下のように数値が入っています。
[root@localhost ~]# cat /proc/1011/oom_adj
0
勉強後イメージ
OOM Killer聞いたことあったけど、これは知らなかった。
どういうときに除外対象にするんだろう?
できるだけシステムを動かしたいプロセスってことかな