プロセスを Out of Memory Killer の対象外にする方法
Linux システムでは、メモリ不足時にカーネルが自動的にプロセスを終了させる機能(Out of Memory Killer、略して OOM Killer)が備わっています。重要なプロセスがこの機能によって終了されないようにするためには、特定の設定を行う必要があります。
手順
-
プロセスの OOM スコア調整値を設定する
対象のプロセスに対して、OOM Killer の優先度を最も低く設定するには、oom_score_adj
の値を-1000
に設定します。これにより、OOM Killer による終了の対象から除外されます。$ echo -1000 | sudo tee /proc/<プロセスID>/oom_score_adj
※<プロセスID>
は対象のプロセスの PID に置き換えてください。 設定が反映されたことを確認する
設定が正しく反映されたかを確認するには、以下のコマンドを実行します。
出力結果が$ cat /proc/<プロセスID>/oom_score
0
であれば、設定が正しく適用されています。
補足情報
oom_score_adj
は、プロセスが OOM Killer によって終了される優先度を調整するためのパラメータです。値の範囲は-1000
(最も終了されにくい)から1000
(最も終了されやすい)までです。- 以前のカーネルバージョンでは、
oom_adj
を使用していましたが、現在はoom_score_adj
が推奨されています。 - この設定は一時的なものであり、システムの再起動後には元に戻ります。永続的に設定を維持するには、起動スクリプトや systemd のサービスユニットファイルに設定を追加する必要があります。