No VMware ESXi 5.x, faz diferença se eu selecionar 2 núcleos de CPU versus 2 soquetes de CPU?

16

Título praticamente diz tudo. Só estou me perguntando se isso faz diferença na maneira como as VMs processam as coisas e se um método é preferível a outro.

Windows Ninja
fonte

Respostas:

17

Não, sua VM deve executar o mesmo e usará os mesmos recursos no host. É apenas uma opção de design que foi adicionada principalmente para adicionar alguma flexibilidade onde seu sistema operacional ou software pode ter por requisitos de licenciamento da CPU.

Cada soquete / núcleo representará um núcleo físico no host. Lembre-se de que mais núcleos não são automaticamente uma coisa boa devido aos requisitos de programação.

Dan
fonte
Acabei de ler um artigo sobre a questão do agendamento no fim de semana, enquanto tentava descobrir um problema com alguma coisa. Muito interessante. Obrigado pela sua resposta rápida.
Windows Ninja
11
Link para o artigo?
quer
12

O principal objetivo da opção núcleos / soquete é fornecer flexibilidade com software que possa ter requisitos de tempo de execução ou de licenciamento com base no número de soquetes "físicos" ou núcleos da CPU.

Enquanto não há nenhuma diferença de desempenho entre múltiplos núcleos em um soquete versus uma combinação de tomadas múltiplas, não é uma pequena diferença em operação se você habilitar ou exigir o recurso CPU hot-add da máquina virtual.

Com o recurso de adição a quente da CPU do VMware, você pode adicionar um soquete a uma VM em execução, mas não núcleos adicionais . Por mais estranho que pareça, isso é algo que eu encontro na produção no trabalho e influenciou como eu configuro as novas VMs.

ewwhite
fonte
Caso interessante - vale a pena conhecer!
Dan
1

De um modo geral, fará pouca ou nenhuma diferença de desempenho.

Um sistema operacional suficientemente complexo pode alterar suas heurísticas de agendamento (mantendo encadeamentos estreitamente relacionados nos núcleos no mesmo pacote, por exemplo, que, com alguns designs de chip, podem aumentar a eficiência de como o cache compartilhado entre os núcleos é usado) dependendo da organização dos soquetes (preenchidos) e núcleos. Em uma configuração virtualizada, qualquer diferença provavelmente será insignificante ou renderizada completamente devido à maneira como o hipervisor agenda o acesso da CPU para VMs convidadas, a menos que o hipervisor seja bastante inteligente sobre o agendamento principal também / entre as VMs.

Como Dan aponta, você deve avaliar suas tarefas (de maneira realista: por exemplo, com outras atividades no host, não apenas em um ambiente de teste em que a VM em questão seja a única em execução) para garantir que vários vCores / vCPUs / ambos é realmente benéfico para o desempenho deles. A maneira como o acesso aos núcleos é agendado pode introduzir atrasos que eliminam qualquer benefício e, de fato, tornar as coisas mais lentas - vi relatórios em que tarefas com CPU significativa funcionam em um pequeno farm de VMs de núcleo único no mesmo host com desempenho significativamente melhor em o mesmo hardware que um número menor de (em que "número menor2 inclui uma) VM com vários núcleos (embora, é claro, isso possa impor uma carga de memória muito maior ao host).

David Spillett
fonte