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?