15.2. Out of Memory 状態のときに強制終了するプロセスの優先順位付け
oom_killer() 関数で終了するプロセスに優先順位を付けることができます。これにより、優先順位の高いプロセスが OOM 状態の間も実行され続けることが保証されます。各プロセスには /proc/PID ディレクトリーがあります。各ディレクトリーには、以下のファイルが含まれます。
-
oom_score_adj ' - 'oom_score_adj の有効なスコアは、-16 から +15 の範囲にあります。この値は、他の要因の中でも特に、プロセスの実行時間も考慮に入れるアルゴリズムを使用して、プロセスのパフォーマンスフットプリントを計算するために使用されます。 -
oom_score:oom_score_adj の値を使用して計算されたアルゴリズムの結果が含まれます。
メモリー不足の状態では、oom_killer() 関数は oom_score が最も高いプロセスを終了します。
プロセスの 'oom_score_adj' ファイルを編集して、終了するプロセスに優先順位を付けることができます。
前提条件
- 優先するプロセスのプロセス ID (PID) を把握している。
手順
プロセスの現在の
oom_scoreを表示します。# cat /proc/12465/oom_score 79872プロセスの
oom_score_adjの内容を表示します。# *cat /proc/12465/oom_score_adj * 13oom_score_adjの値を編集します。# *echo -5 > /proc/12465/oom_score_adj *
検証
プロセスの現在の
oom_scoreを表示します。# cat /proc/12465/oom_score 78- 表示される値が以前の値よりも小さいことを確認します。