Oom Killer(おーむきらー)
最終更新:2026/4/28
Oom Killerは、Linuxカーネルにおいて、メモリ不足時にプロセスを強制終了させる機能である。
ポイント
Oom Killerは、システム全体の停止を防ぐための最終手段として機能する。どのプロセスを終了させるかは、カーネルのヒューリスティックに基づいて決定される。
Oom Killerの概要
Oom Killer(Out of Memory Killer)は、Linuxシステムが深刻なメモリ不足に陥った際に、システム全体のクラッシュを防ぐためにプロセスを強制終了させる機能です。メモリ不足は、アプリケーションのバグ、メモリリーク、または単にシステムが過負荷状態にある場合に発生する可能性があります。
Oom Killerの動作原理
Oom Killerは、どのプロセスを終了させるかを決定するために、各プロセスの「oom_score」と呼ばれる値を計算します。このスコアは、プロセスのメモリ使用量、実行時間、優先度など、さまざまな要素に基づいて決定されます。スコアが高いプロセスほど、Oom Killerによって終了される可能性が高くなります。
Oom Killerの設定
Oom Killerの動作は、/proc/sys/vm/overcommit_memoryなどのシステムパラメータによって調整できます。これらのパラメータを変更することで、Oom Killerの動作をより細かく制御し、システムの安定性を向上させることができます。
Oom Killerの回避
Oom Killerが頻繁に起動する場合は、システムのメモリ不足が根本的な原因である可能性があります。メモリ使用量を削減するための対策(アプリケーションの最適化、メモリリークの修正、メモリ増設など)を講じることが重要です。また、Oom Killerが特定のプロセスを頻繁に終了させる場合は、そのプロセスのメモリ使用量を制限したり、優先度を下げたりすることも有効です。
Oom Killerとスワップ
Oom Killerは、スワップ領域が不足している場合や、スワップの使用がパフォーマンスに悪影響を与える場合に特に重要になります。スワップ領域は、メモリが不足している場合に、一時的にデータをディスクに書き出すための領域ですが、ディスクへのアクセスはメモリへのアクセスよりもはるかに遅いため、パフォーマンスが低下する可能性があります。