k8s进行cpu绑核优化后,再配合NUMA 亲和性以进一步优化cpu性能

场景

在多cpu核心节点上,此时往往节点是NUMA节点的,我们一般开启了cpu绑核后,此时还可以通过开启NUMA 亲和性,以进一步优化cpu性能,这种优化在游戏训练等场景下,收益尤为明显

查看机器是否配置NUMA

  • 1、lscpu | grep NUMA

  • 2、yum install numactl && numactl –hardware

  • 3、确保 /etc/default/grub 中没有 numa=off,若有需要开启NUMA则改为 numa=on

cpu绑核配置

参考上一篇:【博客593】k8s为pod进行cpu绑核以进一步提高性能

NUMA 亲和性配置

  • 1、驱逐节点:
    kubectl drain <NODE_NAME>
  • 2、停止 kubelet:
    systemctl stop kubelet
  • 3、修改 kubelet 参数:
    –cpu-manager-policy=“static”
    –topology-manager-policy=single-numa-node
  • 4、删除旧的 CPU 管理器状态文件:
    rm var/lib/kubelet/cpu_manager_state
  • 5、启动 kubelet
    systemctl start kubelet

topology-manager-policy策略注意点:

  • 策略为single-numa-node时,则yaml中的CPU个数一定不能超过最大每个numa的个数
  • 策略为best-effort时,yaml中limit的cpu和request的cpu设置相同且cpu值为整数,则为独占CPU。
  • 策略为best-effort时,yaml中只设置了limit,但没有设置request的cpu,且limit设置的cpu为整数,则为独占CPU。
  • 策略为best-effort除了以上两种情况,都是为共享CPU池,不符合独占要求。
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐