Ao migrar máquinas virtuais (VM) para o Azure, alguns utilizadores relataram ver apenas metade das vCPU esperadas no Gestor de Tarefas, apesar de o hardware e o gestor de dispositivos apresentarem o número correto de CPU. Este artigo explica a causa raiz do problema e apresenta uma solução passo a passo que foi implementada com êxito.
Descrição geral do problema
Depois de migrar uma VM com o tamanho D4s v4, que deveria ter 4 vCPU, os utilizadores observaram o seguinte:
- Gestor de Dispositivos apresenta corretamente 4 CPU.

- O Gestor de Tarefas apresenta apenas 2 processadores virtuais.

- PowerShell (
Get-ComputerInfo) apenas indica 2 CPU.

Esta discrepância pode levantar preocupações de desempenho, uma vez que a VM parece estar a subutilizar os recursos atribuídos.
Causa raiz
Este problema geralmente deve-se ao facto de o Hyperthreading estar desativado. Quando o Hyperthreading está desativado, a VM usa núcleos físicos em vez de núcleos virtuais, pelo que apenas metade das vCPU esperadas é apresentada no Gestor de Tarefas.
Solução
Para resolver o problema, são necessárias modificações no Registo do Windows são necessárias, seguidas de um reinício da VM a partir do portal do Azure ou através da linha de comandos. Nota: reiniciar a partir do SO convidado não é suficiente para que as alterações produzam efeito.
Passos para corrigir o problema
- Modificar as chaves do Registo
Execute os seguintes comandos numa sessão elevada da Linha de Comandos ou do PowerShell:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
- Reiniciar a VM
Efetue o reinício a partir do portal do Azure ou usando o Azure CLI. Por exemplo:
az vm restart --name <VM_NAME> --resource-group <RESOURCE_GROUP>
- Importante: reiniciar a VM a partir do SO convidado (por exemplo, através do menu Iniciar) não aplicará as alterações.
Verificação
Depois de concluir os passos anteriores:
- Abra o Gestor de Tarefas e confirme que é apresentado o número correto de vCPU.
- Use o PowerShell para confirmar o número de CPU:
(Get-ComputerInfo).CsProcessors
O problema deverá estar resolvido e a VM utilizará todos os recursos atribuídos.
Notas adicionais
- Esta solução foi testada e implementada com êxito pela equipa de suporte do Azure.
- Se o Hyperthreading foi desativado intencionalmente para cargas de trabalho específicas, consulte a sua equipa antes de aplicar esta solução.
Conclusão
Esta modificação do Registo resolve o problema de apenas metade das vCPU ser apresentada no Gestor de Tarefas das VM do Azure. Garantir a configuração correta e reiniciar a VM a partir do portal do Azure é fundamental para que a correção produza efeito. Ao seguir estes passos, os utilizadores podem utilizar plenamente os recursos atribuídos à VM e evitar estrangulamentos de desempenho.