昇腾社区首页
中文
注册

K8s性能优化

断点续训特性的故障恢复流程与K8s平台存在大量交互,K8s相关请求响应的性能将影响断点续训整体性能。因此,在大规模K8s集群场景下,需要针对K8s性能调优以达到断点续训性能优化。本章节提供K8s集群配置的参数修改说明,以下提供的推荐参数配置均以万卡规模K8s集群为例。

如下配置仅供参考,请根据实际环境酌情调整配置。

API Server启动参数修改

  • --max-requests-inflight和--max-mutating-requests-inflight:在给定时间内限制并行处理读写请求的最大数量限制。
    • 配置原理:若配置过低会出现请求超限错误,若配置过高会出现占用过多内存。
    • 建议配置:
      --max-requests-inflight=20000
      --max-mutating-requests-inflight =2000
    • 参考文件路径:/etc/kubernetes/manifests/kube-apiserver.yaml
  • --watch-cache和--watch-cache-sizes:API Server的缓存量大小。
    • 配置原理:API Server获取etcd对象时,会优先访问本地cache,当cache中没有需要的信息时再访问etcd,并将etcd数据存入cache,若cache达到上限则覆盖cache,配置合理的cache大小可以提升etcd获取效率。
    • 建议配置:
      --watch-cache=true 
      --watch-cache-sizes=node#1000,pod#2000,event#200,namespace#100,service#200
    • 参考文件路径:/etc/kubernetes/manifests/kube-apiserver.yaml

API Server资源配置修改

API Server配置的cpu资源。

  • 配置原理:cpu资源配置影响API Server的处理能力,调整API Server requests的cpu资源上限。
  • 建议配置:cpu资源上限调整为35核(不代表API Server整体的cpu占用率)。
    resources:
      requests:
        cpu: 35000m
  • 参考文件路径:/etc/kubernetes/manifests/kube-apiserver.yaml

etcd启动参数修改

  • --quota-backend-bytes:etcd的存储上限。
    • 配置原理:默认为2G,根据需要修改。
    • 建议配置:修改为8G。
      --quota-backend-bytes=8589934590
    • 参考文件路径:/etc/kubernetes/manifests/etcd.yaml
  • --auto-compaction-retention:进行自动压缩,降低资源占用。
    配置原理:进行碎片整理,降低资源占用。
    --auto-compaction-retention  

    --auto-compaction-retention不会实际释放空间,需要用户手动配合使用etcdctl compact和etcd defrag清理空间。

etcd资源配置修改

etcd配置的cpu和内存资源。

  • 配置原理:cpu和内存资源配置影响etcd的处理能力。
  • 建议配置:etcd request的cpu资源上限调整为20核,memory资源上限调整为10G。
    resources:
      requests:
        cpu: 20000m
        memory: 10000Mi
  • 参考文件路径:/etc/kubernetes/manifests/etcd.yaml

Volcano资源配置修改

Volcano配置的cpu和内存资源。

  • 配置原理:cpu和内存资源配置影响Volcano的处理能力。
  • 建议配置:request的cpu资源上限调整为20核,memory资源上限调整为8G。
    resources:
      requests:
        cpu: 20000m
        memory: 4Gi
  • 参考配置命令:
    kubectl edit deployment -n volcano-system  volcano-scheduler