Prozessoren mit mehreren Kernen bieten zahlreiche Vorteile für einen Host, der mehrere Aufgaben virtueller Maschinen gleichzeitig ausführt.
Die von Intel und AMD entwickelten Prozessoren kombinieren zwei oder mehrere Prozessorkerne in einem einzelnen integrierten Schaltkreis (häufig als Paket oder Socket bezeichnet). VMware verwendet den Begriff „Socket“, um ein einzelnes Paket zu beschreiben, das mindestens einen Prozessorkern mit mindestens einem logischen Prozessor in jedem Kern umfassen kann.
Beispielsweise erbringt ein Prozessor mit zwei Kernen annähernd die doppelte Leistung eines Prozessors mit einem Kern, da er die gleichzeitige Ausführung von zwei virtuellen CPUs ermöglicht. Kerne innerhalb eines Prozessors verfügen in der Regel über einen von allen Kernen genutzten Last-Level-Cache, wodurch die erforderlichen Zugriffe auf langsameren Hauptarbeitsspeicher verringert werden können. Ein gemeinsam genutzter Arbeitsspeicherbus, der einen physischen Prozessor mit einem Hauptarbeitsspeicher verbindet, kann zu einer Leistungseinschränkung der logischen Prozessoren führen, wenn die darauf ausgeführten virtuellen Maschinen arbeitsspeicherintensive Arbeitslasten ausführen, die um dieselben Ressourcen des Arbeitsspeicherbusses konkurrieren.
Alle logischen Prozessoren der einzelnen Prozessorkerne werden unabhängig voneinander vom ESXi-CPU-Scheduler zum Ausführen virtueller Maschinen verwendet, wodurch Funktionen bereitstellt werden, die mit SMP-Systemen vergleichbar sind. Beispielsweise kann eine virtuelle Zwei-Wege-Maschine die eigenen virtuellen Prozessoren auf logischen Prozessoren ausführen, die zum selben Kern gehören oder sich auf anderen physischen Kernen befinden.
Der ESXi-CPU-Scheduler kann die Prozessortopologie und die Beziehungen zwischen Prozessorkernen und den darauf befindlichen logischen Prozessoren erkennen. Diese Informationen werden zur Planung der virtuellen Maschinen und Leistungsoptimierung eingesetzt.
Der ESXi-CPU-Scheduler kann die Prozessortopologie erkennen, einschließlich der Beziehungen zwischen Sockets, Kernen und logischen Prozessoren. Der Scheduler verwendet Topologieinformationen zum Optimieren der Platzierung der virtuellen CPUs auf verschiedenen Sockets. Dank dieser Optimierung kann die Cache-Nutzung insgesamt maximiert und die Cache-Affinität durch Minimieren der virtuellen CPU-Migrationen verbessert werden.