7.2. メモリーのオーバーコミット

KVM ハイパーバイザーで実行しているゲスト仮想マシン群には、そのマシン群専用に割り当てられた物理的な RAM ブロックはありません。代わりに、各ゲスト仮想マシンはホスト物理マシンの Linux プロセスとして動作します。つまり、メモリーが要求された場合にのみホスト物理マシンの Linux カーネルによってメモリーが割り当てられます。また、ホストのメモリー管理機能により、物理的なメモリーと swap 領域間でゲスト仮想マシンのメモリーを移動させることができます。
オーバーコミットを採用する際は、ホスト物理マシンのプロセス処理用に十分なメモリーを確保するだけでなく、すべてのゲスト仮想マシンに対応できるようにホスト物理マシン上に十分な swap 領域を配分する必要があります。原則として、ホスト物理マシンのオペレーティングシステムには最大 4GB のメモリーと最小 4GB の swap 領域が必要となります。適切な swap パーティションサイズ把握に関する詳細な説明は、Red Hat ナレッジベース を参照してください。

重要

オーバーコミットが、全般的なメモリー関連の問題に対する理想的なソリューションとなるわけではありません。メモリー不足に対処するため推奨される方法は、ゲストにより少ないメモリーを割り当てるか、ホストにより多くの物理メモリーを追加するか、または swap 領域を使用することです。
スワップが頻繁に行われると、仮想マシンの動作が遅くなる場合があります。また、オーバーコミットによりシステムがメモリーを使い果たし (OOM)、Linux カーネルが重要なプロセスをシャットダウンする可能性があります。メモリーのオーバーコミットを実行する場合は、テストを十分に実施するようにしてください。オーバーコミットに関して支援が必要な場合は Red Hat サポートにお問い合わせください。
オーバーコミットはすべての仮想マシンで機能する訳ではありませんが、集中的なメモリー使用が最小限となるデスクトップ仮想化のセットアップや、複数の同一設定のゲスト仮想マシンを KSM で実行する場合などに有効であることが確認されています。KSM およびオーバーコミットの詳細については、『Red Hat Enterprise Linux 7 仮想化のチューニングと最適化ガイド』を参照してください。

重要

デバイス割り当て が使用されている場合、割り当てデバイスで直接メモリーアクセス (DMA) を有効にするには、すべての仮想マシンメモリーの静的な事前割り当てを行う必要があります。このため、メモリーのオーバーコミットはデバイス割り当てと一緒にはサポートされません。