Definição do número de núcleos por CPU em uma máquina virtual (1010184)

Disclaimer: Este artigo é uma tradução do Setting the number of cores per CPU in a virtual machine (1010184). Como os artigos são traduzidos em uma base de melhor esforço, o conteúdo pode tornar-se desatualizado. Para obter o conteúdo mais recente, consulte o artigo em Inglês.

Este artigo apresenta informações sobre como definir o número de núcleos por CPU em uma máquina virtual.

Observação: Este recurso é experimental no vSphere 4.0

Alguns SKUs de sistemas operacionais são limitados por hardware para rodar em um número fixo de CPUs. Por exemplo, o Windows Server 2003 Standard Edition é limitado para rodar em até 4 CPUs. Se você instalar este sistema operacional em uma caixa física de 8 soquetes, ele irá operar em apenas 4 das CPUs. O sistema operacional otimiza as CPUs de múltiplos núcleos, portanto se sua CPU for dual core, o Windows Server 2003SEroda em até 8 núcleos, e se você tiver uma CPU quad-core, ela irá rodar em até 16 núcleos, e assim por diante.

CPUs virtuais (vCPU) em máquinas virtuais VMware aparecem para o sistema operacional como CPUs de núcleo único. Assim, como no exemplo acima, se você criar uma máquina virtual com 8 vCPUs (o que é possível com o vSphere), o sistema operacional vê 8 CPUs com núcleo único. Se o sistema operacional for Windows 2003SE (limitado a 4 CPUs), só irá rodar em 4 vCPUs.

Observação: Lembre-se que 1 vCPU mapeia um núcleo físico e não uma CPU física, portanto a máquina virtual está, na verdade, tendo que rodar apenas 4 núcleos.

Considerando que 1 vCPU é igual a 1 CPU é uma suposição para fins de simplificação, uma vez que as vCPUs são programadas em CPUs lógicas que são contextos de execução de hardware. Estas tarefas podem demorar um pouco no caso de CPUs de núcleo único,CPUs que possuem 1 thread por núcleo, ou apenas um thread no caso de uma CPU que possui hyperthreading.

Considere este cenário:

No mundo físico você pode rodar o Windows2003 SE em até 8 núcleos (usando uma caixa de núcleo quádruplo de 2 soquetes), mas em uma máquina virtual eles só podem rodar em 4 núcleos, pois o VMware diz ao sistema operacional que cada CPU tem apenas 1 núcleo por soquete.

A VMware agora tem uma configuração que lhe dá controle sobre o número de núcleos por CPU em uma máquina virtual.

Esta nova configuração, que você pode adicionar ao arquivo de configuração da máquina virtual (.vmx),permite que você defina o número de núcleos por soquete virtual na máquina virtual.

Para implementar este recurso:

  1. Desligue a máquina virtual.
  2. Clique com o botão direito na máquina virtual e depois clique em Edit Settings.
  3. Clique em Hardware e selecione CPUs.
  4. Selecione o número de processadores virtuais.
  5. Clique na aba Options.
  6. Clique em General, na seção Advanced options.
  7. Clique em Configuration Parameters.
  8. Incluacpuid.coresPerSocket na coluna Name .
  9. Insira um valor (tente 2, 4, ou 8) na coluna Value .

    Observação: Certifique-se de que o número de vCPUs seja divisível pelo número de cpuid.coresPerSocket da máquina virtual. Ou seja, quando você dividir o número de vCPUs pelo número de cpuid.coresPerSocket, deverá obter um valor inteiro. Por exemplo,se sua máquina virtual for criada com 8 CPUs, os coresPerSocket só podem ser 1, 2, 4, ou 8.

    A máquina virtual agora aparece para o sistema operacional como possuindo CPUs de multinúcleos com o número de núcleos por CPU dado pelo valor que você forneceu na etapa 9.
  10. Clique em OK.

    Por exemplo:

Usando 4 vCPUs
Configuração desejada
Definições necessárias para esta configuração
Número de soquetes
Número de núcleos por soquete
Total de núcleos
Defina a vCPU para:
Defina cpuid.coresPerSocket/
sockets para:
1
4
4
4
4
2
2
4
4
2

Usando 8 vCPUs
Configuração desejada
Definições necessárias para esta configuração
Número de soquetes
Número de núcleos por soquete
Total de núcleos
Defina a vCPU para:
Defina cpuid.coresPerSocket/
sockets para:
1
8
8
8
8
2
4
8
8
4
4
2
8
8
2

Observações:

  • Para atribuir mais do que 4 vCPUs ou se o processador suportar mais do que 6 núcleos por processador, você tem que atribuir uma licença de Enterprise Plus, que suporta até 8 vCPUs e 12 núcleos por processador.
  • Apenas valores de 1, 2, 4, 8 para o cpuid.coresPerSocket são suportados para o recurso de múltiplos núcleos da vCPU no ESX 4.x.
  • Em ESX 4.0, se vCPU de múltiplos núcleos for utilizada, a operação hot-plug vCPU não é permitida, mesmo se estiver disponível na Interface do Usuário.
  • Apenas máquinas virtuais HV 7 suportam o recurso de vCPU de múltiplos núcleos.

Importante: Quando estiver usando cpuid.coresPerSocket, você deve sempre ter certeza que está em conformidade com os requisitos de seu sistema operacional EULA (ou seja, com respeito ao número de CPUs físicas nas quais o sistema operacional está, de fato, rodando).

Informações adicionais

Se você está usando sistemas operacionais que foram liberados quando a SMP era apenas um servidor de alta tecnologia, espera-se que seja necessário fazer algumas pequenas mudanças, como selecionar o kernel SMP para máquinas virtuais Linux e Multiprocessadores PC HAL para máquinas virtuais do Windows .

Observação:Você não encontra problemas com sistemas operacionais recentes. XP e mais recentes e RHEL5 e mais recentes sempre instalam SMP kernel ou automaticamente o alternam.

Alguns exemplos de versões mais antigas de sistemas operacionais:

  • RHel3-ES32
  • RHel3-ES64
  • RHel4.8-AS32
  • RHel4.7-ES32
  • RHel4.7-ES64
  • Win2000-Pro
  • Win2000-Serv

Para obter informações sobre:

4/10/2013 8:00 AM
  • VMware ESX
  • VMware ESX 4.1.x
  • VMware ESXi
  • VMware ESXi 4.1.x Embedded
  • VMware ESXi 4.1.x Installable
  • VMware ESXi 5.0.x
  • VMware vCenter Server 4.1.x
  • VMware vCenter Server 5.0.x