Os processadores multicore oferecem muitas vantagens para um host executando multitarefa de máquinas virtuais.

Observação: Neste tópico, "Memória" pode se referir a RAM física ou Memória persistente.

A Intel e a AMD desenvolveram processadores que combinam dois ou mais núcleos de processador em um único circuito integrado (muitas vezes chamado de pacote ou soquete). VMware usa o termo soquete para descrever um único pacote que pode ter um ou mais núcleos de processador com um ou mais processadores lógicos em cada núcleo.

Um processador de núcleo duplo, por exemplo, fornece quase o dobro do desempenho de um processador de núcleo único, permitindo que duas CPUs virtuais sejam executadas ao mesmo tempo. Os núcleos no mesmo processador são normalmente configurados com um cache de último nível compartilhado usado por todos os núcleos, reduzindo potencialmente a necessidade de acessar a memória principal mais lenta. Um barramento de memória compartilhada que conecta um processador físico à memória principal pode limitar o desempenho de seus processadores lógicos quando as máquinas virtuais em execução neles executam cargas de trabalho com uso intensivo de memória que competem pelos mesmos recursos de barramento de memória.

Cada processador lógico de cada núcleo de processador é usado de forma independente pelo agendador de CPU ESXi para executar máquinas virtuais, fornecendo recursos semelhantes aos sistemas SMP. Por exemplo, uma máquina virtual bidirecional pode ter seus processadores virtuais em execução em processadores lógicos que pertencem ao mesmo núcleo ou em processadores lógicos em diferentes núcleos físicos.

O agendador da CPU ESXi pode detectar a topologia do processador e os relacionamentos entre os núcleos do processador e os processadores lógicos neles. Ele usa essas informações para agendar máquinas virtuais e otimizar o desempenho.

O agendador da CPU ESXi pode interpretar a topologia do processador, incluindo a relação entre soquetes, núcleos e processadores lógicos. O agendador usa informações de topologia para otimizar o posicionamento de CPUs virtuais em diferentes soquetes. Essa otimização pode maximizar o uso geral do cache e melhorar a afinidade de cache, minimizando as migrações de CPU virtual.