全部产品

自定义CPU选项

一台ECI实例的CPU选项由CPU物理核心数和每核线程数决定。根据您创建ECI实例的方式,部分ECI实例支持自定义CPU选项。

功能概述

基于英特尔的超线程HT(Hyper-Threading)技术,ECI允许在一个物理核上并发运行两个线程,一个线程可以视为一个vCPU,vCPU=CPU物理核心数*每核线程数。

如下表所示,对于一台ECI实例,CPU选项由CPU物理核心数和每核线程数决定。根据您创建ECI实例的方式,部分ECI实例支持自定义CPU选项(CPU Options)。

说明

自定义CPU选项不会产生额外计费。

CPU选项

作用

适用场景

CPU物理核心数

决定启用的CPU物理核心数。

减少启用的CPU物理核心数可以减少vCPU数,进而可以获得更高的内存配比,同时降低软件许可费用支出。

每核线程数

决定CPU是否开启超线程。

支持自定义CPU选项的ECS规格默认开启了超线程(即每核线程数不为1),可以应对常见的工作负载。在以下场景下,您可以考虑关闭超线程:

  • 部分HPC业务场景下,关闭超线程可能获得更好的性能表现。

  • 内存密集型业务场景下,关闭超线程可以减少vCPU数,进而可以获得更高的内存配比,同时降低软件许可费用支出。

创建ECI实例时,您可以采用指定ECS规格,或者指定vCPU和内存的方式,系统将根据您的配置,使用相应的ECS规格,或者尝试多种ECS规格进行支撑。如果系统使用的ECS实例规格支持自定义CPU选项,则相应的ECI实例支持自定义CPU选项。

说明

仅部分ECS规格支持自定义CPU选项,默认已开启超线程。更多信息,请参见支持自定义CPU选项的ECS规格

根据您创建ECI实例的方式,是否支持自定义CPU选项的情况如下:

  • 指定ECS规格

    • 单规格

      • 如果指定的ECS规格支持自定义CPU选项,则创建ECI实例并设置CPU选项。

      • 如果指定的ECS规格不支持自定义CPU选项,则忽略CPU选项设置,直接创建ECI实例,您将收到相应的事件通知。如果CPU选项设置不合法,您将收到报错提示,不创建ECI实例。

    • 多规格

      按照您设置的ECS规格顺序尝试创建ECI实例。

      • 如果使用的ECS规格支持自定义CPU选项,则创建ECI实例并设置CPU选项。

      • 如果使用的ECS规格不支持自定义CPU选项,或者CPU选项设置不合法,则忽略CPU选项设置,直接创建ECI实例,您将收到相应的事件通知。

  • 指定vCPU和内存

    优先使用支持自定义CPU选项的ECS规格进行支撑。

创建ECI实例时,您可以根据需要使用以下两种方来自定义CPU选项:

Kubernetes方式

如果您通过Kubernetes来创建ECI实例,可以配置Annotation来自定义CPU选项。相关配置项如下:

  • k8s.aliyun.com/eci-cpu-option-core:CPU物理核心数。

  • k8s.aliyun.com/eci-cpu-option-ht:每核线程数。

yaml文件的内容示例如下:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/eci-use-specs : "ecs.c6.2xlarge"    #指定支持自定义CPU选项的ECS规格
    k8s.aliyun.com/eci-cpu-option-core: 2                 #自定义设置CPU物理核心数为2
    k8s.aliyun.com/eci-cpu-option-ht: 1                    #自定义设置每核线程数为1,即关闭超线程
  name: nginx-test
spec:
  containers:
  - name: nginx
    image: nginx:latest
  restartpolicy: Always

OpenAPI方式

调用CreateContainerGroup接口创建ECI实例时,您可以通过CpuOptionsCore和CpuOptionsThreadsPerCore参数来自定义CPU选项,相关参数说明如下表所示。更多信息,请参见CreateContainerGroup

名称

类型

是否必选

示例值

描述

CpuOptionsCore

Integer

2

CPU物理核心数。仅部分规格支持自定义设置。

CpuOptionsThreadsPerCore

Integer

2

每核线程数。仅部分规格支持自定义设置。CpuOptionsThreadsPerCore=1表示关闭超线程。