ESXi は、高度な NUMA スケジューラを使用して、プロセッサの負荷とメモリの局所性またはプロセッサの負荷バランスを動的に均衡させます。
- NUMA スケジューラによって管理される各仮想マシンは、ホーム ノードに割り当てられます。ホーム ノードは、システム リソース割り当てテーブル (SRAT) に示されたとおりにプロセッサとローカル メモリを含む、システムの NUMA ノードの 1 つです。
- メモリが仮想マシンに割り当てられる場合、ESXi ホストは、ホーム ノードから優先的にメモリを割り当てます。仮想マシンの仮想 CPU は、メモリの局所性を最大限にするため、ホーム ノード上での実行に制限されます。
- NUMA スケジューラは、システム負荷の変化に対応するために、仮想マシンのホーム ノードを動的に変更できます。NUMA スケジューラは、プロセッサの負荷不均衡を減らすために、新しいホーム ノードに仮想マシンを移行することがあります。このためにより多くのメモリがリモートになる場合があるので、NUMA スケジューラは、仮想マシンのメモリを動的に新しいホーム ノードに移行して、メモリの局所性を向上させることがあります。NUMA スケジューラは、ノード間で仮想マシンをスワップすると全体的なメモリの局所性が高まる場合、そのようなスワップを行うこともあります。
一部の仮想マシンは、ESXi の NUMA スケジューラによって管理されません。たとえば、仮想マシンのプロセッサまたはメモリ アフィニティを手動で設定する場合、NUMA スケジューラがその仮想マシンを管理できないことがあります。NUMA スケジューラによって管理されない仮想マシンであっても、正常に動作します。ただし、それらの仮想マシンは ESXi の NUMA 最適化の利点を得られません。
ESXi における NUMA のスケジュール設定とメモリ配置のポリシーは、すべての仮想マシンを透過的に管理できるため、管理者は、ノード間で仮想マシンのバランスをとることの複雑さを明示的に処理する必要はありません。
最適化は、ゲスト OS のタイプにかかわらずにシームレスに機能します。ESXi は、NUMA ハードウェアをサポートしない仮想マシン (Windows NT 4.0 など) にも、NUMA サポートを提供します。結果的に、レガシー オペレーティング システムであっても新しいハードウェアを利用できます。
1 つのハードウェア ノード上で使用可能な物理プロセッサ コアの数よりも多くの仮想プロセッサを持つ仮想マシンは、自動的に管理できます。NUMA スケジューラは、複数の NUMA ノードを利用することで、そのような仮想マシンに対応します。つまり、そのような仮想マシンを複数の NUMA クライアントに分割し、それぞれの NUMA クライアントに 1 つのノードに割り当ててから、通常の、分割されていないクライアントとしてスケジューラが管理します。これにより、局所性の高い、メモリを多用するワークロードのパフォーマンスを強化できます。この機能の動作の構成については、仮想マシンの詳細属性 を参照してください。
ESXi 5.0 以降では、仮想 NUMA トポロジのゲスト OS への公開のサポートが含まれています。仮想 NUMA 制御の詳細については、仮想 NUMA の使用 を参照してください。