一个ECI Pod(即ECI实例)的CPU选项由CPU物理核心数和每核线程数决定。根据您创建ECI Pod的方式,部分ECI Pod支持自定义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),可以应对常见的工作负载。在以下场景下,您可以考虑关闭超线程:
|
仅指定ECS规格创建ECI实例时,支持自定义CPU选项。如果系统使用的ECS实例规格支持自定义CPU选项,则相应的ECI实例支持自定义CPU选项。
仅部分ECS规格支持自定义CPU选项,默认已开启超线程。更多信息,请参见支持自定义CPU选项的ECS规格。
指定单个ECS规格
如果指定的ECS规格支持自定义CPU选项,则创建ECI实例并设置CPU选项。
如果指定的ECS规格不支持自定义CPU选项,则忽略CPU选项设置,直接创建ECI实例,您将收到相应的事件通知。如果CPU选项设置不合法,您将收到报错提示,不创建ECI实例。
指定多个ECS规格
按照您设置的ECS规格顺序尝试创建ECI实例。
如果使用的ECS规格支持自定义CPU选项,则创建ECI实例并设置CPU选项。
如果使用的ECS规格不支持自定义CPU选项,或者CPU选项设置不合法,则忽略CPU选项设置,直接创建ECI实例,您将收到相应的事件通知。
配置说明
您可以在Pod metadata中添加Annotation来自定义CPU选项。相关Annotation如下:
k8s.aliyun.com/eci-cpu-option-core:CPU物理核心数。
k8s.aliyun.com/eci-cpu-option-ht:每核线程数。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。
配置示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
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,即关闭超线程
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80