ESXi は、従来の初期配置方法を動的な再バランシング アルゴリズムと統合します。システムは、定期的に (デフォルトでは 2 秒ごとに) さまざまなノードの負荷を調べて、仮想マシンをあるノードから別のノードに移動することによって負荷を再バランシングするべきかどうかを判定します。
公平性またはリソース資格に違反しないでパフォーマンスを向上させるために、この計算では、仮想マシンとリソース プールのリソース設定が考慮されます。
リバランサは、適切な仮想マシンを選択して、そのホーム ノードを負荷が最小のノードに変更します。可能な場合、リバランサは、すでに一部のメモリがターゲット ノード上に配置されている仮想マシンを移動します。そこから先は (仮想マシンが再び移動されないかぎり)、仮想マシンがその新しいホーム ノード上にメモリを割り当てて、新しいホーム ノード内のプロセッサ上でのみ実行されます。
再バランシングは、公平性を維持して、すべてのノードが完全に使用されるようにするための効果的な解決策です。リバランサは、メモリをほとんどまたはまったく割り当てなかったノードに仮想マシンを移動しなければならない場合があります。その場合、仮想マシンは、大量のリモート メモリ アクセスに伴うパフォーマンス上のペナルティを被ります。ESXi は、仮想マシンの元のノードから新しいホーム ノードへメモリを透過に移行することによって、このペナルティを排除できます。
- システムは、元のノード上のページ (連続するメモリの 4KB) を選択し、そのデータをターゲット ノード内のページにコピーします。
- システムは、ターゲット ノード上のページを以後のすべての参照に使用してリモート メモリ アクセスのペナルティを排除するように、仮想マシン監視レイヤーとプロセッサのメモリ管理ハードウェアを使用して仮想マシンのメモリ ビューをシームレスに再マッピングします。
仮想マシンが新しいノードに移動するとき、ESXi ホストはすぐに、この方法によるメモリの移行を開始します。仮想マシンのリモート メモリの残りがほとんどない場合やターゲット ノードの使用可能な空きメモリがほとんどない場合は特に、ESX/ESXi ホストは、この速度を管理してシステムに過度な負担をかけないようにします。このメモリ移行アルゴリズムは、仮想マシンが短期間だけ新しいノードに移動される場合は ESXi ホストがメモリを不必要に移動しないことも保証します。
初期配置、動的再バランシング、およびインテリジェントなメモリ移行が共同で動作する場合、ワークロードの変化があっても、NUMA システム上での良好なメモリ パフォーマンスがそれらの動作によって保証されます。主要なワークロードの変化が発生した場合、たとえば、新しい仮想マシンが起動された場合、システムは再調整に時間をかけて、仮想マシンとメモリを新しい場所に移行します。短期間 (通常は数秒または数分) でシステムは再調整を完了し、安定状態に達します。