Apenas metade das vCPU apresentadas no Gestor de Tarefas das VM do Azure

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.

Deixe um comentário