第18章 Out of Memory (OOM) 状態の管理
Out-of-memory (OOM) は、スワップ領域を含む利用可能なメモリーがすべて割り当てられているコンピューティング状態です。通常、これによりシステムがパニックになり、想定どおりに機能しなくなります。以下で説明する手順は、システムの OOM 状態を回避するのに役立ちます。
前提条件
- システムの root 権限がある。
18.1. Out of Memory 値の変更
/proc/sys/vm/panic_on_oom
ファイルには、Out of Memory (OOM) の動作を制御するスイッチである値が含まれます。ファイルに 1
が含まれる場合、カーネルは OOM でパニックになり、期待どおりに機能しなくなります。
デフォルト値は 0
で、システムが OOM 状態の場合に oom_killer()
関数を呼び出すようカーネルに指示します。通常、oom_killer()
は不要なプロセスを終了します。これにより、システムの存続が可能になります。
/proc/sys/vm/panic_on_oom
の値を変更できます。
手順
/proc/sys/vm/panic_on_oom
の現在の値を表示します。# cat /proc/sys/vm/panic_on_oom 0
/proc/sys/vm/panic_on_oom
の値を変更するには、次のコマンドを実行します。echo コマンドを使用して、新しい値を
/proc/sys/vm/panic_on_oom
に代入します。# echo 1 > /proc/sys/vm/panic_on_oom
OOM 時に Real-Time カーネルをパニック状態にすることが推奨されます (1
)。そうしないと、システムが OOM 状態になった場合、その状態は決定論的ではなくなります。
検証
/proc/sys/vm/panic_on_oom
の値を表示します。# cat /proc/sys/vm/panic_on_oom 1
- 表示される値が指定された値と一致していることを確認します。