为提升实例性能,阿里云默认为大多数实例规格启用超线程,将一个物理核心划分为2个逻辑核心。但针对内存密集型或高单核性能需求场景,关闭超线程反而可以优化性能表现,降低软件许可证费用。
适用场景
阿里云默认为大多数实例规格启用了超线程技术(Hyper-Threading),以提升多线程性能。但在某些特定业务场景下,关闭超线程反而有助于提升整体性能或实现成本优化。以下是几种关闭超线程的典型场景。
内存密集性业务场景关闭超线程以提升性能
对于内存密集性业务,例如缓存服务等,可能并不需要大量并发线程,因此可以关闭超线程,优化算存比,提升业务服务的性能。
高单核性能需求场景关闭超线程以提升性能
对于高单核性能需求场景,关闭超线程可以减少因线程竞争、上下文切换造成的性能开销。
工业仿真/设计场景关闭超线程以减少软件许可证的费用
部分工业仿真软件、设计软件以及部分操作系统,软件许可证(License)可能按核心数量计费,减少启用的CPU核心数或关闭超线程以降低物理/逻辑核心数量,可有效节省软件许可证费用。
计费说明
更改CPU选项只会影响启用的核心数或超线程设置,不影响实例总CPU数量。因此,实例规格费用不变,也不会产生额外费用。
使用限制
操作步骤
您可以在创建实例时设置CPU选项,也可更改已有实例的CPU选项。
创建实例时设置CPU核心数与超线程设置
您可以在创建实例时,调整启用的CPU核心数和超线程设置。具体操作如下:
控制台
您可以在自定义购买实例时,通过 设置实例启用的物理核心数与开关超线程。相关配置项说明如下:
|
API
您可以在调用RunInstances创建并启动实例时,设置实例启用的物理核心数与开关超线程。相关参数说明如下:
参数名 | 类型 | 描述 |
CpuOptions.Core | integer | 实例启用的物理核心数。仅部分规格支持调整,且只能配置特定的值,具体请参见使用限制。 |
CpuOptions.ThreadsPerCore | integer | 每核线程数,设置为1代表关闭超线程。仅部分规格支持调整,且仅能配置特定值,具体请参见使用限制。 |
CLI
您可以在通过CLI调用RunInstances创建并启动实例时,设置实例启用的物理核心数(CpuOptions.Core)与超线程配置(CpuOptions.ThreadsPerCore)。CLI命令示例如下:
本命令含义:在创建ecs.g7.8xlarge规格(16个物理CPU核心)的实例时,设置启用10个物理核心(CpuOptions.Core=10),并关闭超线程(CpuOptions.ThreadsPerCore=1)。
aliyun ecs RunInstances --RegionId cn-hangzhou \
--CpuOptions.Core 10 \
--CpuOptions.ThreadsPerCore 1 \
--ImageId aliyun_3_x64_20G_alibase_20250117.vhd \
--InstanceType ecs.g7.8xlarge \
--SecurityGroupId sg-bp1****** \
--VSwitchId vsw-bp1****** \
--SystemDisk.Category cloud_essd \
--Amount 1
核心参数说明如下:
修改已有实例CPU核心数与超线程设置
如果需要调整已有实例的CPU核心数和超线程设置,需停止实例后,才能修改实例的CPU选项。操作步骤如下:
控制台
您可以在控制台通过以下步骤更改已有实例的CPU选项。
| |
| |
|
API
您可以参考以下API调用流程,设置实例启用的物理核心数与开关超线程。
调用StopInstance停止实例。
调用ModifyInstanceAttribute更改CPU选项。相关参数说明如下:
参数名
类型
描述
CpuOptions.Core
integer
实例启用的物理核心数。仅部分规格支持调整,且只能配置特定的值,具体请参见使用限制。
CpuOptions.ThreadsPerCore
integer
每核线程数,设置为1代表关闭超线程。仅部分规格支持调整,且仅能配置特定值,具体请参见使用限制。
调用StartInstance重新启动实例,应用配置。
CLI
您可以参考以下CLI调用流程,设置实例启用的物理核心数与开关超线程。
调用StopInstance停止实例。
aliyun ecs StopInstance --region cn-hangzhou \ --InstanceId i-bp1******
调用ModifyInstanceAttribute更改CPU选项。
本命令含义:修改ID为i-bp1******的实例的CPU选项,启用10个物理核心(CpuOptions.Core=10)并关闭超线程(CpuOptions.ThreadsPerCore=1)
aliyun ecs ModifyInstanceAttribute --region cn-hangzhou \ --InstanceId i-bp1****** \ --CpuOptions.Core 10 \ --CpuOptions.ThreadsPerCore 1
核心配置项说明:
调用StartInstance重新启动ECS实例。
aliyun ecs StartInstance --region cn-hangzhou \ --InstanceId i-bp1******
相关文档
CPU选项修改成功后,建议进行系统稳定性测试,以确保系统能够正常运行。您可以运行一些负载测试或应用场景测试,观察系统的响应和性能表现。
ECS实例创建成功后,您可以监测系统的性能指标和资源利用情况,并根据需要进行优化。更多信息,请参见查看实例监控信息。
在虚拟化环境、多线程编程、高性能计算等不同场景下,您可以查看和修改CPU拓扑结构(
CpuOptions.TopologyType
)来提高ECS实例性能、提升并行性以及优化资源分配。