您可以查看並修改ECS執行個體的CPU拓撲結構來提高效能、提升並行性以及最佳化資源分派,以滿足您在虛擬化環境、多線程編程、高效能運算等不同情境下的需求。本文介紹如何通過OpenAPI查看和修改執行個體的CPU拓撲結構。
背景資訊
目前阿里雲部分執行個體規格類型系列支援HT連續模式
(ContinuousCoreToHTMapping)和HT離散模式
(DiscreteCoreToHTMapping)兩種不同的拓撲結構。具體說明如下:
HT連續模式:邏輯核心連續分配給物理核心,有助於減少線程之間的通訊和競爭。適用於需要較低的訪存延遲和更接近物理核心的計算任務,例如科學計算、資料分析、高效能運算等對記憶體訪問和核心計算敏感的應用。
HT離散模式:邏輯核心分散分配給物理核心,可以有助於減少多線程環境中的資源爭奪,並提供更好的效能隔離。適用於工作負載中分配給各線程的任務相對獨立,或者對單線程效能要求較高的情境。
本文以一台8 vCPU的X86架構的執行個體規格為例,兩種CPU拓撲結構的說明如下所示。
CPU拓撲結構如下圖所示:
HT連續模式
邏輯核心與物理核心的關係如下所示:
HT 0
和HT 1
屬於一個核心CORE 0
。HT 2
和HT 3
屬於一個核心CORE 1
。HT 4
和HT 5
屬於一個核心CORE 2
。HT 6
和HT 7
屬於一個核心CORE 3
。
HT離散模式
邏輯核心與物理核心的關係如下所示:
HT 0
和HT 4
屬於一個核心CORE 0
。HT 1
和HT 5
屬於一個核心CORE 1
。HT 2
和HT 6
屬於一個核心CORE 2
。HT 3
和HT 7
屬於一個核心CORE 3
。
使用限制
僅以下執行個體規格類型系列支援修改CPU拓撲結構:
ecs.g8i、ecs.c8i、ecs.r8i
ecs.g7、ecs.c7、ecs.r7
ecs.g7a、ecs.c7a、ecs.r7a
ecs.hfg8i、ecs.hfc8i、ecs.hfr8i
ecs.hfg7、ecs.hfc7、ecs.hfr7
ecs.g6、ecs.c6、ecs.r6
ecs.g6e、ecs.c6e、ecs.r6e
更多資訊,請參見執行個體規格類型系列。
查看CPU拓撲結構
您可以通過調用DescribeInstances介面,填寫請求參數AdditionalAttributes
,查看對應返回參數資訊,確認當前執行個體的CPU拓撲類型。更多資訊,請參見DescribeInstances。
返回參數的可能值如下:
HT連續模式:
ContinuousCoreToHTMapping
HT離散模式:
DiscreteCoreToHTMapping
不支援修改:空
修改CPU拓撲結構
如果您因業務需求需要修改CPU拓撲結構,建議您在修改之前進行一些基準測試和效能評估,以確定哪種模式最適合您的工作負載。
您可以通過調用OpenAPI並設定不同的參數來修改執行個體的CPU拓撲結構。
建立執行個體時
調用RunInstances介面,填寫請求參數
CpuOptions.TopologyType
的取值來修改CPU拓撲結構。更多資訊,請參見RunInstances。已建立執行個體
說明通過調用API介面修改ECS執行個體的CPU拓撲結構時,請確保執行個體處於已停止狀態。
調用ModifyInstanceAttribute介面,填寫請求參數
CpuOptions.TopologyType
的取值來修改CPU拓撲結構。更多資訊,請參見ModifyInstanceAttribute。
請求參數CpuOptions.TopologyType
的取值範圍如下:
HT連續模式:
ContinuousCoreToHTMapping
HT離散模式:
DiscreteCoreToHTMapping