ホストが仮想マシンのマルチタスクを実行する場合、マルチコア プロセッサにはさまざまな利点があります。

Intel および AMD は、複数のプロセッサ コアを 1 つの集積回路 (通常はパッケージまたはソケットと呼ばれます) に組み合わせたプロセッサをそれぞれ開発しました。当社では、1 つ以上のプロセッサ コアを装備できる 1 つのまとまりを表すのにソケットという用語を使用します。

各プロセッサ コア内には、1 つ以上の論理プロセッサが含まれます。たとえば、デュアルコア プロセッサは、同時に 2 つの仮想 CPU を実行できるため、シングルコア プロセッサのほぼ 2 倍のパフォーマンスを発揮します。同じプロセッサ内のコアは、通常、すべてのコアが使用する最終レベルの共有キャッシュを装備して構成されており、より低速のメイン メモリにアクセスする必要性は軽減されます。実行中の仮想マシンが、同じメモリ バス リソースで競合するようなメモリを多用するワークロードを実行している場合、物理プロセッサをメイン メモリに接続する共有メモリ バスによって論理プロセッサのパフォーマンスが制限されることがあります。

仮想マシンを実行する ESXi CPU スケジューラによって各プロセッサ コアの各論理プロセッサを独立して使用できるため、SMP システムと同様のパフォーマンスが得られます。たとえば、2 方向の仮想マシンは、仮想プロセッサを同じコアに属する論理プロセッサ上で実行することも、異なる物理コア上の論理プロセッサで実行することもできます。

ESXi CPU スケジューラは、プロセッサ トポロジと、そのプロセッサ コアと論理プロセッサとの関係を検出します。この情報を使用して、仮想マシンをスケジュール設定し、パフォーマンスを最適化します。

ESXi CPU スケジューラは、ソケット、コア、および論理プロセッサ間の関係も含め、プロセッサ トポロジを認識できます。スケジューラはトポロジ情報を使用して、さまざまなソケットへの仮想 CPU の配置を最適化します。これにより、キャッシュ全体の使用率が最大化され、仮想 CPU の移行が最小化されるために、キャッシュのアフィニティが向上します。

場合によっては、たとえば、SMP 仮想マシンが仮想 CPU 間での顕著なデータ共有を示している場合は、このデフォルトの動作は次善の策になる可能性があります。そのようなワークロードでは、ESXi ホストがアンダーコミットされていても、同じソケット上にあるすべての仮想 CPU を最終レベルの共有キャッシュ付きでスケジュール設定した方がメリットがある場合があります。そのようなシナリオでは、仮想 CPU を複数のパッケージにわたって分散するデフォルト動作は、仮想マシンの .vmx 構成ファイルに次の構成オプションを組み込むことによってオーバーライドできます。sched.cpu.vsmpConsolidate="TRUE".