Posso utilizar o desempenho total dos núcleos de CPU físicos de um hypervisor ao executar uma aplicação de uso de CPU alta dentro de uma VM?

1

Atualmente, tenho um pool de aplicativos do IIS em execução em um servidor físico com 2 processadores quad core que tem uma média de 50% de utilização em todos os núcleos. Eu preciso tornar este aplicativo altamente disponível e, depois de pesquisar nossas opções, decidi criar um cluster do Hyper V com esse aplicativo em uma máquina virtual.

O que me preocupa é que a VM tenha apenas 4 vCPUs e, com base nas características que vi anteriormente com outro servidor Hyper V, parece que 1 vCPU só pode maximizar um núcleo da CPU física. Mesmo que a vCPU esteja em 100%, ela não poderá utilizar o poder de processamento dos outros núcleos físicos. Se esta observação estiver correta, eu já estaria utilizando 100% de 4 núcleos com base na minha utilização atual de 50% em 8 núcleos (não representando a sobrecarga inerente à própria virtualização).

Ao pesquisar isso, assisti a vídeo do YouTube do Brian Ehlert sobre a utilização da CPU do hipervisor e li sua Conceitos do Hyper-v vCPU Entrada do wiki do Tecknet . Com base no meu entendimento do que Brian está dizendo, como o processo w3wp.exe que executa o pool de aplicativos está girando e derrubando threads de trabalho para lidar com conexões de usuários individuais em nosso site, essas conexões distintas devem fornecer o ponto de interrupção em que a vCPU pode passar de um processador físico para o próximo rapidamente o suficiente para me permitir utilizar o desempenho de todos os 8 núcleos de um sistema físico quando a VM tiver apenas 4 vCPUs.

Isso ainda não se aplica a mim e vai contra o que eu vi. Como uma única vCPU deve concluir seu processamento atual antes de poder ser comutada para outra CPU física, isso significa que não há nenhuma maneira de uma única vCPU obter uma utilização líquida mais alta das CPUs físicas do que 100% de um núcleo. Se os encadeamentos de aplicativos não tiverem pontos de interrupção, isso será 100% de um núcleo físico, se os encadeamentos de aplicativos tiverem pontos de interrupção que permitiriam ao hipervisor mover a vCPU para o próximo núcleo físico do que a utilização poderia ser algo como 25 % de cada um dos núcleos físicos em um sistema quad core, com o total resultante ainda limitado a 100% de um único núcleo.

Com base neste raciocínio, parece que 1 vCPU nunca poderá utilizar uma porcentagem total maior de todos os núcleos físicos do que 100% de um único núcleo quando a utilização de núcleos físicos de vCPUs é somada em todos os núcleos.

Em suma, isso significaria que eu não conseguiria atingir o nível de desempenho de um sistema de 8 núcleos de dentro de uma VM, mesmo que a VM tivesse 4 vCPUs e estivesse em execução em um sistema com 16, 32 ou até 64 núcleos físicos. >

Existe uma maneira de alcançar o desempenho que estou procurando em uma única VM?

    
por Chris Magnuson 21.10.2010 / 02:41

2 respostas

1

Based on my understanding of what Brian is saying, since the w3wp.exe process that runs the application pool is spinning up and tearing down worker threads to handle individual users connections to our website then these discrete connections should provide the break point where the vCPU can move from one physical processor to the next rapidly enough to allow me to utilize the performance of all 8 cores of a physical system when the VM only has 4 vCPUs.

Voltar a ler algumas noções básicas sobre como funciona o processamento. Ponto. Não há como (!) Enganar os 4 núcleos virtuais para usar 8 núcleos físicos em 100%. Não há "ponto de ruptura" que seja visível FORA DA MÁQUINA VIRTUAL.

Você está basicamente limitado a 4 núcleos virtuais por VM. Agora, você pode cluster / NLB e usar várias máquinas virtuais.

    
por 21.10.2010 / 02:50
1
Realisticamente com a última geração de CPUs, você pode esperar uma redução de 1 a 3% na capacidade de processamento (assumindo que algo estranho não entra em ação) e se você atribuir 4 vCPUs, sua VM responderá como se tivesse 4 dos núcleos físicos (os núcleos HTT contam apenas para aplicativos que se ligam à ALU).

Em uma nota lateral; que a entrada do Technet Wiki é extremamente confusa, e eu acho que há um pouco de informação errada lá.

    
por 21.10.2010 / 02:52