8.2.15. メモリーの最適化
ホストの仮想マシン数を増やすには、仮想マシンに割り当てる メモリーのオーバーコミット を使用できます。メモリーは RAM を超え、swap 領域に依存します。
ただし、メモリーのオーバーコミットには潜在的な問題があります。
- スワップパフォーマンス - スワップ領域が遅くなり、仮想マシンのパフォーマンスに影響する RAM よりも多くの CPU リソースを消費します。スワップを過剰にすると、CPU のスラッシングにつながる可能性があります。
- OOM (Out-of-memory) killer: ホストがスワップ領域が不足すると、新規プロセスを開始できず、カーネルの OOM killer デーモンは仮想マシンゲストなどのアクティブなプロセスのシャットダウンを開始します。
これらの欠点に対処するために、以下を実行できます。
- Memory Optimization 設定および Memory Overcommit Manager (MoM) を使用してメモリーのオーバーコミットを制限します。
- 仮想メモリーの潜在的な要求に対応できるサイズに大きな swap 領域を作成し、安全マージンを残します。
- memory ballooning および Kernel Same-page Merging (KSM) を有効にして、仮想メモリー サイズを縮小します。
8.2.15.1. メモリーの最適化とメモリーオーバーコミット
Memory Optimization 設定 (None (0%)、150%、または 200% のいずれかを選択して、メモリーのオーバーコミット量を制限できます。
各設定は、メモリーの割合を表します。たとえば、RAM が 64 GB のホストの場合、150% を選択すると、仮想メモリーの合計 96 GB について、メモリーを追加の 32 GB でオーバーコミットできます。ホストの合計が 4 GB を使用する場合には、残りの 92 GB が利用可能になります。仮想マシンにはほとんど (System タブの Memory Size) を割り当てることができますが、その一部を安全マージンとして割り当てることを検討してください。
仮想メモリーの要求で急増すると、MoM、メモリーバルーン、および KSM が仮想メモリーを再最適化するまでのパフォーマンスに影響する可能性があります。この影響を減らすには、実行するアプリケーションおよびワークロードの種類に適した制限を選択します。
- メモリーに対する増分増加をデマンドするワークロードの場合は、200% または 150% などの高いパーセンテージを選択します。
- より重大なアプリケーションまたはワークロードでメモリーの需要が増加する場合には 、150% や None (0%) などの低いパーセンテージを選択します。None を選択するとメモリーのオーバーコミットを防ぐことができますが、MoM、メモリーバルーンデバイス、および KSM は仮想メモリーの最適化を継続できます。
設定を実稼働環境にデプロイする前に、さまざまな条件下で メモリー最適化 の設定を必ずテストしてください。
Memory Optimization 設定を設定するには、New Cluster または Edit Cluster ウィンドウの Optimization タブをクリックします。「最適化設定の説明」 を参照してください。
その他のコメント:
- ホスト統計ビュー には、オーバーコミットメント率のサイズを決定するための有用な履歴情報が表示されます。
- KSM とメモリーバルーンの変更が達成するメモリーの最適化のサイズは継続的に行われるため、実際に利用可能なメモリーをリアルタイムで決定することはできません。
- 仮想マシンが仮想メモリー制限に達すると、新しいアプリを開始できません。
- ホストで実行する仮想マシンの数を計画する際には、最大仮想メモリー (物理メモリーサイズおよびメモリー Memory Optimization 設定) を開始点として使用します。メモリーバルーンや KSM などのメモリーの最適化により実現される、より小さい仮想メモリーに考慮しないでください。