將虛擬機器 (VM) 遷移至 Azure 時,一些使用者反映,在工作管理員中僅能看到預期 vCPU 數量的一半,儘管硬體和裝置管理員顯示的 CPU 數量正確。本文將說明此問題的根本原因,並提供已成功實作的逐步解決方案。
問題概覽
在遷移了採用D4s v4大小(應有 4 個 vCPU)的 VM 後,使用者觀察到以下情況:
- 裝置管理員正確顯示 4 個 CPU。

- 工作管理員僅顯示 2 個虛擬處理器。

- PowerShell (
Get-ComputerInfo) 僅回報 2 個 CPU。

這種差異可能會引發效能方面的疑慮,因為 VM 似乎未充分利用其分配的資源。
根本原因
此問題通常是因為超執行緒被停用所導致。關閉超執行緒後,VM 會使用實體核心而非虛擬核心,導致工作管理員中僅顯示預期 vCPU 數量的一半。
解決方案
若要解決此問題,需要修改Windows 登錄,然後從Azure 入口網站或透過命令列重新啟動 VM。注意:從客體 OS 內部重新啟動不足以讓變更生效。
修正此問題的步驟
- 修改登錄機碼
在提高權限的命令提示字元或 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
- 重新啟動 VM
從Azure 入口網站或使用 Azure CLI 執行重新啟動。例如:
az vm restart --name <VM_NAME> --resource-group <RESOURCE_GROUP>
- 重要:從客體 OS 內部重新啟動 VM(例如,透過「開始」功能表)不會套用變更。
驗證
完成上述步驟後:
- 開啟工作管理員並驗證顯示的 vCPU 數量是否正確。
- 使用 PowerShell 確認 CPU 數量:
(Get-ComputerInfo).CsProcessors
問題現在應該已解決,VM 將充分利用其分配的全部資源。
其他說明
- 此解決方案已由 Azure 支援團隊成功測試和實作。
- 如果超執行緒是為了特定工作負載而刻意停用的,請在套用此解決方案之前諮詢您的團隊。
結論
此登錄修改解決了 Azure VM 的工作管理員中僅顯示一半 vCPU 的問題。確保設定正確並從 Azure 入口網站重新啟動 VM,對於修正生效至關重要。遵循這些步驟,使用者可以充分利用分配的 VM 資源並避免效能瓶頸。