オーバーコミット【overcommitment】
概要

仮想化環境では、一台の物理サーバ上で複数のVMが同時に動作する。各VMにはCPUの実行時間やメインメモリが割り当てられるが、すべてのVMが常に最大負荷で稼働することは少なく、時間帯や処理の種類によって需要は変動し、利用されない「遊び」が生じる。オーバーコミットはこの余剰を前提として、物理的な上限を超える量のリソースを論理的に割り当てることで、同一ホスト上の収容効率を高める。
主な対象はCPUとメモリの二種類である。「CPUオーバーコミット」では、物理コア数を上回る仮想CPU(vCPU)を複数のVMに割り当て、タイムシェアリングによって実行時間を細かく分配する。「メモリオーバーコミット」では、VM間で重複するデータ領域を共有する「メモリバルーニング」(memory ballooning)や、一時的にストレージへ退避させるスワップ処理などを組み合わせて物理メモリ容量の不足を補う。LinuxカーネルやKVM、VMwareといった主要な仮想化基盤がこれらの機構を備えており、クラウドサービスでも標準的に活用されている。
一方、複数のVMが同時に高負荷となり実際の使用量が物理リソースの上限に達すると、リソースの競合が発生する。CPUでは実行待ち時間の増加による処理遅延、メモリではスワップの多発やOOMキラーによるプロセスの強制終了といった影響が生じる。特にメモリのオーバーコミットは過剰に設定すると応答性能や安定性を大きく損なうため、物理容量に対する割当総量の比率である「オーバーコミット率」を、実際の負荷傾向や利用率の監視にもとづいて適切に管理することが求められる。
(2026.6.15更新)