読み方 : アウトオブメモリ
OOM【Out Of Memory】アウトオブメモリ
概要
OOMとは、コンピュータプログラムが実行中に必要なメモリ領域を確保できなくなり、処理を続行できなくなる実行時エラー。システムの空きメモリが不足した際に発生し、プログラムが異常終了する。

プログラムは動作中、変数や処理中のデータを一時的に保持するためにメインメモリ(RAM)上の領域を随時確保する。現代のオペレーティングシステム(OS)はメモリを一元管理しており、各プログラムはOSに割り当てを要求しながら動作する。
OSの空き領域が要求量に満たない場合、割り当ては拒否され、OOMエラーが発生してプログラムは異常終了する。Linuxでは「OOM Killer」と呼ばれる機構が、メモリを大量消費しているプロセスを優先順位に従って自動的に強制終了させることでシステム全体の安定を維持する。
OOMが発生する原因としては、搭載メモリ自体がプログラムの動作要件を満たしていない場合や、複数のプログラムが同時にメモリを大量消費して空き領域が逼迫している場合がある。空き容量の合計は足りていても、断片化(フラグメンテーション)が進んで連続した領域を確保できないために失敗することもある。
また、プログラムが確保したメモリ領域を不要になっても解放しないまま使い続ける「メモリリーク」(memory leak)という不具合が蓄積し、長い時間をかけてOOMに至るケースもある。近年では、クラウド環境や仮想化環境においてプロセスごとの利用上限やアドレス空間の制約に達したことでメモリ不足となる場合もある。
Javaや.NETのような仮想マシン上で動作する言語環境では、「ヒープ」(heap)と呼ばれる専用のメモリ領域が上限を超えた時点で、OS全体のメモリ枯渇とは独立してOOMエラーが生じる。Javaであれば「java.lang.OutOfMemoryError」などの例外を生じる。上限値はJVM起動時のオプションで調整できる。
(2026.7.3更新)