您可以查看并修改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