绑核模式
CPU绑核可以提高同一个Node上不同Pod之间的隔离性,同时减少线程上下文切换提升性能。
前提条件
- polardbx-operator版本不低于v1.6.0
Node 打标
支持绑核后,K8S Node 将被区分为:
- 支持绑核, 有Label:polardbx/isolate-cpu=true
- 不支持绑核,没有Label:polardbx/isolate-cpu
实例参数设置
创建PolarDB-X Cluster的时候,设置.spec.exclusive
为 true
, 默认值为false
。
注意:引擎组件里的cpu配置的request值和limit值必须相等,否则将返回报错。
例子
假设目前有3个Node: Node1, Node2, Node3。
经检查这些Node上没有部署非绑核模式的PolarDb-X Cluster。
给Node打标
kubectl label node Node1 polardbx/isolate-cpu=true kubectl label node Node2 polardbx/isolate-cpu=true kubectl label node Node3 polardbx/isolate-cpu=true
创建实例
apiVersion: polardbx.aliyun.com/v1 kind: PolarDBXCluster metadata: name: pxc-bindcpu spec: exclusive: true topology: nodes: cn: replicas: 1 template: hostNetwork: true resources: limits: cpu: 2 memory: 4Gi image: polardbx/polardbx-sql:5.4.18-20240111164723 imagePullPolicy: IfNotPresent dn: replicas: 1 template: hostNetwork: true resources: limits: cpu: 3 memory: 6Gi image: polardbx/polardbx-engine-2.0:80-8.0.18-20231101115000 imagePullPolicy: IfNotPresent