vSphere - aloca 100% de CPU para 1 VM / 88% de eficiência [closed]

1

EDIT 2: Minha aplicação se beneficia do hyper-threading

Sim, eu sei o que é a tecnologia e o que ela faz

Sim, eu sei a diferença entre um núcleo físico e um físico

C. Sim, desligar o HT tornou a renderização mais lenta, isso é esperado!

D. Não, não estou superprivisionando quando eu atribuo todos os núcleos lógicos (sim lógicos) a uma VM, se você ler os white papers do VMWare, saberá que o agendador gera um mapa de topologia do hardware físico e usa esse mapa ao alocar recursos, A atribuição de TODOS os núcleos lógicos a uma VM gera 16 processadores lógicos no Windows, da mesma forma que eu instalei a VM no hardware físico. E whoa e eis que, após 5 testes, este arranjo produziu os tempos de renderização mais rápidos (e mais eficientes).

F. O aplicativo em questão é o 3ds max 2014 usando backburner e o renderizador Mental Ray.

TL | DR: Eu (algumas vezes) quero executar uma VM no vSphere com o máximo de eficiência de CPU possível, como?

Espero usar o hipervisor ESXI / vSphere da VMWare de uma forma não padrão.

Normalmente, as pessoas usam um hipervisor para executar várias VMs simultaneamente em um sistema. Eu quero usar o hypervisior para permitir que eu alterne rapidamente entre os aplicativos, mas sempre execute apenas uma VM / App por vez.

Na verdade, é um projeto de estimação, tenho uma fazenda de renderização de 5 nós (e. node 2x Intel Xeon E5540) que na maior parte permanece desativada (quando não estou processando, não preciso executar essas máquinas). Parece um desperdício de tempo de computação valioso, então eu estava esperando usá-los para outras coisas quando não renderizando (um tipo de cluster de computação de núcleo / 80 thread de propósito geral).

Eu esperava que o vSphere pudesse me ajudar a criar VMs de nó de renderização ao renderizar e outras coisas quando não. O problema é que eu realmente preciso de uma alta eficiência quando se trata de CPU quando a VM está renderizada.

Estou usando uma tarefa de renderização como referência e obtendo cerca de 88% da velocidade na VM, já que posso entrar em uma configuração que não seja da VM. Eu esperava mais perto de 95%, alguma idéia de como eu poderia chegar lá?

EDIT: Detalhes:

Recursos sendo usados pela VM de renderização, não entendo totalmente por que essa barra não está cheia:

ConfiguraçõesderecursosparaessaVM:

Embora a VM não mostre como usar 100% dos recursos, o host faz:

Eunãoentendointeiramenteos%compartilhamentosaqui,issoéquandotodasessasVMsestãoativadas?TambémnãoconfigureiasoutrasVMsparareservar10%:

Finalmente, o host não é totalmente utilizado, embora não seja mostrado aqui, a utilização do MHz é menor (ou seja, não 100%):

ConfiguraçãodaVM:

Eu entendo que este é um caso interessante, mas, no entanto, eu sinto que a pergunta é válida e boa e pode ajudar outros em uma situação parecida (embora eu admita que esse caso é bem específico).

    
por Cody Smith 17.02.2014 / 06:22

2 respostas

3

Eu acho que você alcançou o máximo do que você provavelmente conseguirá com aqueles Xeons antigos, embora ao contrário do ewwhite, eu não acredito que o hyperthreading esteja lhe causando qualquer tipo de problema. De fato, pelo menos desde o ESXi 5.0, a VMware recomendou o uso de hyperthreading para a maioria das cargas de trabalho, e seu próprio teste parece para confirmar que você está se beneficiando do HT. Como ewwhite observa corretamente, no entanto, o uso do HT fará com que algumas métricas no vSphere sejam exibidas de maneira estranha.

Acho que você tem um problema óbvio e, possivelmente, um problema não óbvio aqui:

Primeiro é a questão óbvia que a própria virtualização gera sobrecarga que você nunca pode eliminar completamente. No caso da CPU, certas instruções devem ser virtualizadas para que o hipervisor isole corretamente uma máquina virtual de outra. Assim, em vez de executar a instrução diretamente, como no bare metal, o hipervisor interceptará a chamada e executará várias instruções em seu lugar. A partir da experiência anterior, podemos ver que 87-90% é sobre o que você deve esperar da CPU . Ficando muito passado que exigiria um avanço significativo no hardware. Se agora você está vendo 91% do desempenho da CPU nativa, provavelmente é tão bom quanto o esperado.

A segunda é a questão não óbvia da NUMA. Esse é um problema com sistemas multiprocessadores, em que parte da memória é mais rápida quando acessada pela CPU mais próxima e mais lenta quando acessada por outras CPUs. Dependendo de como seu trabalho de renderização manipula a memória, você pode ver algum benefício executando dois renderizadores paralelos em duas VMs, cada uma das quais está presa a uma CPU específica e sempre acessa o memória ligeiramente mais rápida. (Se você executar duas VMs em um único host, cada uma usando metade das vCPUs disponíveis, ESXi deverá classificar isso automaticamente para você.) Embora, se você não estiver vendo esse problema no bare metal, provavelmente obterá pouco benefício tentando isso.

    
por 18.02.2014 / 20:18
5

Você configurou mal sua (s) máquina (s) virtual e host.

Coisas a considerar:

  • Se você tiver um processo computacionalmente pesado, convém desabilitar o HyperThreading.
  • Núcleos HyperThreaded (lógicos) não são mesmo que núcleos físicos !!
  • Os processadores Intel E5540 datam de 2009. Eles são processadores quad-core. Você terá 8 núcleos físicos e 8 núcleos lógicos (total de 16).
  • Se você configurou uma VM única com 16 vCPUs, reduza a escala !!
  • O ESXi também requer alguns recursos.
  • Tente dimensionar corretamente sua máquina virtual (8 vCPU) se não estiver disposto a desabilitar o HyperThreading.

Outras coisas a fazer (em geral) ...

por 17.02.2014 / 07:08