メモリを大量に使用するアプリケーションがある場合、または仮想マシンの台数が少ない場合、仮想マシンの CPU とメモリの配置を明示的に指定することによってパフォーマンスを最適化できます。
コントロールを指定することは、仮想マシンがメモリ集約型のワークロード (メモリ内データベース、または大きいデータ セットを持つ科学計算アプリケーションなど) を実行する場合に役に立ちます。システムのワークロードが単純で変化しないことがわかっている場合も、NUMA の配置を手動で最適化できます。たとえば、同様のワークロードを持つ 8 台の仮想マシンを実行する 8 プロセッサ システムは、明示的に簡単に最適化できます。
ESXiには NUMA 配置用のコントロールが 3 セット備わっているため、管理者が仮想マシンのメモリとプロセッサの配置を操作できます。
次のオプションを指定できます。
- CPU アフィニティ
- このオプションを設定した場合、仮想マシンは、アフィニティに指定したプロセッサのみを使用します。
- メモリ アフィニティ
- このオプションを設定した場合、サーバは指定したノード上でのみメモリを割り当てます。
NUMA ノード アフィニティを指定した場合にも、仮想マシンは NUMA で管理されますが、そのマシンの仮想 CPU は、NUMA ノード アフィニティに指定したノード上でのみスケジュール設定できます。同様に、NUMA ノード アフィニティに指定したノードからのみ、メモリを取得できます。CPU またはメモリのアフィニティを指定した場合、仮想マシンは、NUMA で管理されなくなります。これらの仮想マシンの NUMA 管理は、CPU およびメモリのアフィニティの制約を削除した場合は有効です。
手動での NUMA 配置は、プロセッサ リソースをシステム全体で均等に配布するESXiのリソース管理アルゴリズムに干渉する可能性があります。たとえば、プロセッサ集約型のワークロードを持つ 10 台の仮想マシンを 1 つのノードに手動で配置し、2 台の仮想マシンだけを手動で別のノードに配置した場合、システムは、12 台の仮想マシンすべてに均等にシステム リソースのシェアを与えることはできません。