當您通過RunInstances購買執行個體時,部分執行個體規格支援自訂設定CPU選項(CPU選項由CPU物理核心數和每核線程數決定)。您可以根據應用的效能需求靈活調整ECS執行個體的物理核心數和每核線程數(即調整ECS執行個體的vCPU),以獲得更好的效能表現,並有效控製成本。例如,在記憶體密集型業務情境中,通過關閉超執行緒減少vCPU數量,可以提高記憶體配比,並降低軟體許可費支出。
CPU與vCPU
CPU是中央處理器,一個CPU可以包含若干個物理核,通過超執行緒HT(Hyper-Threading)技術可以將一個物理核變成兩個邏輯處理核。vCPU(virtual CPU)是ECS執行個體的虛擬處理核。
阿里雲ECS的超執行緒的實現基於x86平台架構的HT技術,允許在一個物理核上並發地運行兩個線程(Thread),一個線程可以視為一個vCPU。
下表從多個維度對比了ECS執行個體的CPU選項參數。
CPU選項 | API參數 | 作用 | 適用情境 | 適用的執行個體規格 |
CPU物理核心數 | CpuOptions.Core | 決定啟用的CPU物理核心數。 | 減少啟用的CPU物理核心數,提高記憶體配比,收費對象減少也可以降低軟體許可費支出。 | 請參見規格限制。 |
每核線程數 | CpuOptions.ThreadsPerCore | 決定CPU是否開啟超執行緒。 vCPU數量=CPU物理核心數*每核線程數。 | 通常,ECS執行個體規格能夠應對常見的工作負載。在以下情境中,您可以考慮關閉超執行緒:
| 請參見規格限制。 |
計費說明
自訂CPU選項不會產生額外費用。
規格限制
支援自訂CPU選項的執行個體規格類型系列如下:
單擊下方連結查看各執行個體規格CPU物理核心數(CpuOptions.Core)與每核線程數(CpuOptions.ThreadsPerCore)的預設值和取值範圍,未列出的執行個體規格不支援自訂CPU選項。
自訂CPU選項
僅支援在建立ECS執行個體時自訂CPU選項,成功建立執行個體後不允許修改。
一台ECS執行個體如果已經自訂了CPU選項,進行升降配操作後,這台ECS執行個體的CPU選項會被置為預設的CPU選項。
您可以通過RunInstances自訂ECS執行個體的CPU選項(CPU物理核心數和每核線程數),ECS執行個體的vCPU數量=CPU物理核心數*每核線程數。
CPU物理核心數
一台ECS執行個體可提供的物理核心數由執行個體規格決定,您可以在取值範圍內設定啟用的CPU物理核心數(CpuOptions.Core參數配置),但不支援自訂取值範圍外的數值。各執行個體規格的取值範圍,請參見規格限制。
以ecs.g6.2xlarge為例,CPU物理核心數取值範圍為2和4。因此,當您通過RunInstances自訂ECS執行個體的CPU物理核心數時,CpuOptions.Core參數值可以設定為2,即表示ecs.g6.2xlarge提供的物理核心數為2。
每核線程數
ECS執行個體的每核線程數由CpuOptions.ThreadsPerCore參數決定,您可以在取值範圍內設定每核線程數,但不支援自訂取值範圍外的數值。各執行個體規格的取值範圍,請參見規格限制。
CpuOptions.ThreadsPerCore參數值不為1,即開啟超執行緒配置時,每核線程數為您設定的參數值。
設定CPU線程數的阿里雲CLI請求樣本如下,如果您使用的是SDK,請更新至最新版本。
說明ECS執行個體預設開啟超執行緒配置。
aliyun ecs RunInstances --RegionId cn-hangzhou --CpuOptions.Core 2 --CpuOptions.ThreadsPerCore 2 --ImageId ubuntu_18_04_64_20G_alibase_20190624.vhd --InstanceType ecs.g6.xlarge --SecurityGroupId sg-bp67acfmxazb4ph*** --VSwitchId vsw-bp1s5fnvk4gn2tws03*** --Amount 1 --SystemDisk.AutoSnapshotPolicyId sp-bp67acfmxazb4ph***
該請求樣本中,ecs.g6.xlarge提供的物理核心數為2、開啟了超執行緒並且每核線程數為2,則該執行個體建立成功後,執行個體將有2*2=4個vCPU。
CpuOptions.ThreadsPerCore參數值為1,即關閉超執行緒配置時,每核線程數為1。
關閉CPU超執行緒配置的阿里雲CLI請求樣本如下,如果您使用的是SDK,請更新至最新版本。
aliyun ecs RunInstances --RegionId cn-hangzhou --CpuOptions.Core 2 --CpuOptions.ThreadsPerCore 1 --ImageId ubuntu_18_04_64_20G_alibase_20190624.vhd --InstanceType ecs.g6.xlarge --SecurityGroupId sg-bp67acfmxazb4ph*** --VSwitchId vsw-bp1s5fnvk4gn2tws03*** --Amount 1 --SystemDisk.AutoSnapshotPolicyId sp-bp67acfmxazb4ph***
該請求樣本中,ecs.g6.xlarge提供的物理核心數為2,並且關閉了超執行緒,即1個物理核只能運行1個線程,則該執行個體建立成功後,執行個體的vCPU數量等於物理核心數,即2個vCPU。
查看CPU選項
您可以通過DescribeInstances查看ECS執行個體已經設定的CPU選項。如果您使用的是SDK,請更新至最新版本。
例如,通過阿里雲CLI查看CPU相關選項。請求樣本:
aliyun ecs DescribeInstances --InstanceIds '["i-bp19rxmzeocge2z57***"]' --output cols=CpuOptions rows=Instances.Instance[]
返回樣本:
CpuOptions
----------
map[CoreCount:1 Numa:ON ThreadsPerCore:2]
其中CoreCount:1
表示CPU物理核心數為1,ThreadsPerCore:2
表示CPU線程數為2。
相關文檔
ECS執行個體建立成功後,建議進行系統穩定性測試,以確保系統能夠正常運行。您可以運行一些負載測試或應用情境測試,觀察系統的響應和效能表現。
ECS執行個體建立成功後,您可以監測系統的效能指標和資源利用情況,並根據需要進行最佳化。更多資訊,請參見查看執行個體監控資訊。
在虛擬化環境、多線程編程、高效能運算等不同情境下,您可以修改ECS執行個體的CPU拓撲結構(
CpuOptions.TopologyType
)來提高ECS執行個體效能、提升並行性以及最佳化資源分派。