O que significa o máximo do núcleo do vSphere 8?

4

Estou configurando um software que precisará de cerca de 12 núcleos para ser executado, mas estou executando-o em uma máquina virtual do vSphere, o que significa que no máximo 8 núcleos (virtuais) podem ser configurados. [1] A máquina física em que isso estará sendo executado tem 24 núcleos disponíveis e hospeda apenas uma outra máquina virtual. Essa VM também tem 8 núcleos alocados.

Como minha máquina tem 8 núcleos e a outra tem 8 núcleos, isso significa que 8 núcleos parecem estar completamente ociosos. Isso parece errado.

Eu estou supondo que VMWare fez algo inteligente - que, embora eu possa ter apenas 8 núcleos alocados para a minha máquina, na verdade, se houver 24 núcleos no back-end, então eu estou garantido para obter 8 eles, mas podem usar 24 deles se nenhuma outra máquina estiver usando-os.

Eu tenho lido sobre co-compartilhamento no vSphere, [2] mas é um pouco demais.

Alguém pode explicar como isso funciona?

Editar: Esta é a explicação que me foi dada sobre o limite de 8 CPUs, mas preciso confirmá-lo.

vSphere uses dynamic processor load balancing that allows each assigned core in a guest access to all cores on the host. While the guest OS will only see 8 physical processors, each processor has access to a pool of 24 cores. This is very similar to how a mainframe works.

Isso sugere que os 8 núcleos se comportam mais como 24 núcleos, mas agora isso parece errado. É?

Referências:

por mlissner 19.04.2011 / 02:22

3 respostas

8

O que isto significa é que você nunca terá mais de 8 threads executando em paralelo em sua máquina virtual. No entanto, por meio da mágica da alocação de recursos do ESX, você pode dar a esses threads um pouco de potência. Você não está limitado à taxa máxima de suas CPUs reais, os métodos de balanceamento de carga da CPU do ESX permitirão a execução mais rápida do que isso ... contanto que o que você esteja fazendo com ele seja capaz de executar uma execução levemente fora de ordem .

Isso é realizado aproveitando uma estrutura de fila para recursos da CPU. O trabalho é despachado para vários processadores, conforme necessário. Uma única vCPU pode ser executada em qualquer qualquer das CPUs físicas no sistema (ou nas CPUs no nó local, se estiver em um sistema NUMA). A obtenção de desempenho de vCPU além do desempenho da CPU física é feita pelo envio de trabalho de uma única vCPU para várias CPUs físicas em paralelo ou pelo menos muito próximas umas das outras.

Quando chega a hora de remontar o trabalho retornado por várias CPUs para emular uma única vCPU, ela parece à VM como se uma única CPU estivesse funcionando muito rápido. O ESX reagrupa as várias unidades de trabalho na ordem correta.

Nem todas as cargas de trabalho são adequadas para isso, é claro. Trabalhos que submetem muito trabalho iterativo que é vagamente relacionado entre si, se é que é o melhor caso para isso. Trabalhos que envolvem muitas dependências restritas com instruções anteriores, como as chamadas recursivas de algoritmos de criptografia, não serão capazes de escalar quase tão longe.

    
por 19.04.2011 / 03:11
3

O vSphere 4.0 tem um limite rígido de 8 vCPUs. Isso é tudo que vai usar, e é um limite bastante sensato. O vSphere é mais projetado para lidar com muitas VMs convidadas em um host, em vez de apenas um par. Você pode querer ver se você pode agrupar 3-6 VMs em vez de apenas fazer 2.

    
por 19.04.2011 / 02:46
-1

Isso tem a ver com a maneira como eles licenciam seu software. Você ganha muito poder de graça. Se você quer mais do que isso, você tem que pagar por isso. link

    
por 19.04.2011 / 02:34