問題現象
系統內部的虛擬處理器數量少於 ECS 執行個體規格定義的數量。
問題原因
BOOT 引導參數限制:Windows 啟動配置資料(BCD)中設定了 numproc(處理器個數)或 onecpu(單核模式)限制。
超執行緒配置未開啟:ECS 執行個體層面的“每核心線程數”被設定為 1或註冊表索引值禁用了超執行緒功能,導致超執行緒(Hyper-Threading)功能失效。
解決方案
步驟一:清理 BOOT 引導限制
通過命令列解除系統對 CPU 核心數的啟動限制。
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。選擇串連方式為終端串連,輸入帳號和密碼,登入圖形化終端頁面。
清理 BOOT 引導限制。
按右鍵
表徵圖,然後單擊運行,輸入powershell並斷行符號。執行以下命令查詢當前啟動配置。
bcdedit檢查輸出中是否存在
numproc或onecpu。如果存在,執行以下命令刪除。<標識符>需替換為上一步輸出的Windows啟動載入器的標識符。# 刪除處理器個數限制 bcdedit /deletevalue "<標識符>" numproc # 刪除單一處理器模式限制 bcdedit /deletevalue "<標識符>" onecpu若標識符為
{current},需按需執行bcdedit /deletevalue "{current}" numproc及bcdedit /deletevalue "{current}" onecpu。重啟執行個體使配置生效。
步驟二:開啟 ECS 超執行緒 (Hyper-Threading)
如果系統引導無限制,需確認 ECS 執行個體底層的硬體虛擬化配置。
停止執行個體。
更改 CPU 選項必須在執行個體處於已停止狀態下執行。
修改配置。
訪問ECS控制台-執行個體。
單擊目標執行個體ID進入執行個體詳情頁,在配置資訊地區,單擊更改 CPU 選項。
在彈窗中,確保每核心線程數非1(選擇1代表關閉超執行緒)。
啟動執行個體。
儲存配置後啟動執行個體,驗證邏輯處理器數量。
步驟三:調整註冊表修複超執行緒禁用
若每核心線程數非1,需檢查系統是否因安全性原則禁用了超執行緒。具體請參考KB4072698。
登入ECS執行個體。按右鍵
表徵圖,然後單擊運行,輸入regedit開啟登錄編輯程式。定位至以下路徑:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management檢查是否存在
FeatureSettingsOverride和FeatureSettingsOverrideMask健值。若存在,需確保FeatureSettingsOverride為 72,FeatureSettingsOverrideMask為 3。重啟執行個體,使配置生效。