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:进行自动压缩,降低资源占用。
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
父主题: 性能优化