
Quando minha VM HyperV (executando Ubuntu 20.04) está sob carga em meu HP Proliant DL380 G6 (executando Windows Server 2016), apenas 6 dos 12 núcleos físicos estão sendo usados, ou seja, apenas 1 das 2 CPUs está sendo usada. Abaixo está uma captura de tela do meu Gerenciador de Tarefas.
Isto é confirmado pela OIT (abaixo), pois apenas o Processador 2 entra no estado de energia P1.
Minha VM HyperV é a única VM em minha máquina e eu a provisionei com 24 processos virtuais (1 para cada núcleo lógico, já que meu servidor tem 12 núcleos físicos e 24 núcleos lógicos). Abaixo está uma captura de tela das configurações do processador para minha VM HyperV.
Quero que minha VM HyperV aproveite todos os 12 núcleos físicos. Como posso conseguir isso e por que a VM não está aproveitando todos os núcleos disponíveis?
Observe que quando executo uma carga de trabalho multithread no host, todos os 12 núcleos físicos estão sendo utilizados conforme esperado (conforme mostrado abaixo).
Responder1
Lembrei-me de que minha VM tinha "Memória Dinâmica" ativada, então tentei executar a VM com "Memória Dinâmica" desativada. Após o teste de estresse da VM, todos os 12 núcleos físicos foram ativados. Fico feliz por alguém estender esta resposta explicando por que isso resolveu meu problema.