全部產品
Search
文件中心

Elastic Compute Service:調整vCPU配置超執行緒以提升效能

更新時間:Nov 06, 2024

當您通過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執行個體規格能夠應對常見的工作負載。在以下情境中,您可以考慮關閉超執行緒:

  • 部分HPC情境,關閉超執行緒可能獲得更好的效能表現。

  • 在記憶體密集型業務情境中,通過關閉超執行緒減少vCPU數量,提高記憶體配比,收費對象減少也可以降低軟體許可費支出。

請參見規格限制

計費說明

自訂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執行個體效能、提升並行性以及最佳化資源分派。