При миграции виртуальных машин (ВМ) в Azure некоторые пользователи сообщали, что видят только половину ожидаемых vCPU в Диспетчере задач, несмотря на то что оборудование и Диспетчер устройств показывают правильное количество ЦП. В этой статье объясняется первопричина проблемы и приводится пошаговое решение, которое было успешно внедрено.
Обзор проблемы
После миграции ВМ размера D4s v4, которая должна иметь 4 vCPU, пользователи наблюдали следующее:
- Диспетчер устройств правильно показывает 4 ЦП.

- Диспетчер задач отображает только 2 виртуальных процессора.

- PowerShell (
Get-ComputerInfo) сообщает только о 2 ЦП.

Такое расхождение может вызывать опасения по поводу производительности, поскольку ВМ, по-видимому, не полностью использует выделенные ей ресурсы.
Первопричина
Проблема обычно вызвана тем, что технология Hyper-Threading отключена. Когда технология Hyper-Threading отключена, ВМ использует физические ядра вместо виртуальных, поэтому в Диспетчере задач отображается только половина ожидаемых vCPU.
Решение
Для решения проблемы необходимо внести изменения в реестр Windows необходимы, после чего следует перезагрузить ВМ из портала Azure или через командную строку. Примечание: перезагрузки из гостевой ОС недостаточно для вступления изменений в силу.
Шаги по устранению проблемы
- Измените ключи реестра
Выполните следующие команды в командной строке или сеансе 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
- Перезагрузите ВМ
Выполните перезагрузку из портала Azure или с помощью Azure CLI. Например:
az vm restart --name <VM_NAME> --resource-group <RESOURCE_GROUP>
- Важно: перезагрузка ВМ из гостевой ОС (например, через меню «Пуск») не применит изменения.
Проверка
После выполнения описанных выше действий:
- Откройте Диспетчер задач и убедитесь, что отображается правильное количество vCPU.
- Используйте PowerShell, чтобы подтвердить количество ЦП:
(Get-ComputerInfo).CsProcessors
Проблема должна быть решена, и ВМ будет использовать все выделенные ей ресурсы.
Дополнительные примечания
- Это решение было успешно протестировано и внедрено командой поддержки Azure.
- Если технология Hyper-Threading была намеренно отключена для определённых рабочих нагрузок, проконсультируйтесь со своей командой, прежде чем применять это решение.
Заключение
Это изменение реестра устраняет проблему, из-за которой в Диспетчере задач ВМ Azure отображается только половина vCPU. Правильная настройка и перезагрузка ВМ из портала Azure критически важны для вступления исправления в силу. Следуя этим шагам, пользователи смогут полностью использовать выделенные ресурсы ВМ и избежать узких мест производительности.