各仮想マシンに CPU アフィニティ設定を指定することにより、仮想マシンの割り当てをマルチプロセッサ システム内の使用可能なプロセッサのサブセットに制限できます。この機能を使用することで、各仮想マシンを指定したアフィニティ セットのプロセッサに割り当てることができます。
CPU アフィニティは、仮想マシンのプロセッサへの配置の制約を指定します。これは、仮想マシンの仮想マシン ホストへの配置の制約を指定する、仮想マシン間または仮想マシンとホスト間のアフィニティ ルールによって作成された関係とは異なります。
ここでは、CPU という用語は、ハイパースレッド システム上の論理プロセッサを指し、また、非ハイパースレッド システム上のコアのことを指します。
仮想マシンの CPU アフィニティ設定は、その仮想マシンに関連付けられているすべての仮想 CPU と、その仮想マシンに関連付けられているその他のすべてのスレッド (ワールドとも呼ばれる) に適用されます。これらの仮想マシン スレッドは、マウス、キーボード、画面、CD-ROM、およびその他のレガシー デバイスのエミュレーションに必要な処理を実行します。
表示を多用するワークロードなど、一部のケースでは、仮想 CPU とその他の仮想マシン スレッドの間で大量の通信が発生することがあります。仮想マシンのアフィニティ設定によって、これらのその他のスレッドを仮想マシンの仮想 CPU と同時にスケジュール設定できない場合、パフォーマンスが低下する可能性があります。たとえば、ユニプロセッサ仮想マシンに 1 つの CPU がアフィニティ設定されている場合や、2 方向の SMP 仮想マシンに 2 つの CPU がアフィニティ設定されている場合などです。
最大のパフォーマンスを得るために、手動でアフィニティを設定する場合は、少なくとも 1 つの仮想マシン スレッドをその仮想 CPU と同時にスケジュール設定できるように、アフィニティ設定に少なくとも 1 つの物理 CPU を追加して含めておくことをお勧めします。たとえば、ユニプロセッサ仮想マシンに少なくとも 2 つの CPU をアフィニティ設定したり、2 方向の SMP 仮想マシンに少なくとも 3 つの CPU をアフィニティ設定します。