E-HPC叢集的每個計算節點都是一台ECS執行個體,預設情況下,ECS執行個體均已開啟CPU超執行緒。在部分HPC情境下,需要關閉CPU超執行緒以獲得更好的效能表現。本文介紹如何關閉計算節點的CPU超執行緒。
背景資訊
CPU是中央處理器,一個CPU可以包含若干個物理核,通過超執行緒HT(Hyper-Threading)技術可以將一個物理核變成兩個邏輯處理核。ECS的超執行緒基於HT技術,允許在一個物理核上並發地運行兩個線程(Thread),一個線程可以視為一個vCPU,vCPU是ECS執行個體的虛擬處理核。在部分HPC情境下,需要關閉計算節點的CPU超執行緒,使得計算節點獲得更好的效能表現。
注意事項
各類型執行個體規格是否支援關閉超執行緒如下:
僅部分企業級x86計算規格的ECS執行個體支援關閉超執行緒,具體請參見規格限制。
ECS Bare Metal Instance不支援直接關閉超執行緒,但可以從軟體層面關閉超執行緒。
Super Computing ClusterSCC預設已關閉超執行緒。
企業級x86計算規格執行個體關閉超執行緒
建立叢集後,如果需要擴容計算節點,可以配置擴容的計算節點是否開啟超執行緒。
對於企業級x86計算規格的ECS執行個體,建立後不支援關閉超執行緒。
手動擴容
自動調整
ECS Bare Metal Instance關閉超執行緒
ECS Bare Metal Instance可以在執行個體建立後在軟體層面(GuestOS內部)關閉超執行緒,包括設定nr_cpus和改變vCPU狀態兩種方式。GuestOS內部要關閉HT,實際上是要類比一個物理核上對應一個邏輯核,所以將每個物理核上的對應一個邏輯核關閉,保留一個物理核對應一個邏輯核就能達到關閉超執行緒的效果,可以理解為offline一半的vCPU,且這些vCPU均一一分布在對應的物理核上。
對於裸金屬伺服器,實際需要在主板BIOS上關閉超執行緒,這涉及到硬體重啟,鏈路較長且相對較慢,無法保證SLA。因此提供設定兩種軟體層面的方式,可以實作類別似關閉超執行緒的效果。
方式 | 優點 | 缺點 |
設定nr_cpu |
|
|
改變vCPU狀態 | 通過命令改變vCPU狀態時無需重啟執行個體。配置後可以使用 |
|
由於實際生產業務多樣,阿里雲無法真實類比上述兩種方式是否會對業務產生影響。在實際生產環境中使用兩種軟體層面的方式關閉超執行緒時,請您務必做好測試,確認是否對您的業務有所影響。