💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
Kubernetes改进了cgroup v1到cgroup v2的CPU权重公式,解决了CPU优先级分配问题,提升了优先级和粒度,使请求1 CPU的容器获得接近默认值的权重,改善资源分配。此变更需OCI运行时支持,建议在非生产环境中测试。
🎯
关键要点
- Kubernetes改进了从cgroup v1到cgroup v2的CPU权重转换公式。
- 新公式解决了Kubernetes工作负载的CPU优先级分配问题。
- cgroup v1的CPU shares与cgroup v2的CPU weight之间的映射公式已更新。
- 旧公式导致Kubernetes工作负载在CPU优先级上低于非Kubernetes进程。
- 新公式提供了更好的优先级对齐和更细粒度的资源分配。
- 此变更需OCI运行时支持,建议在非生产环境中测试。
- 新公式的实现依赖于OCI层,而非Kubernetes本身。
- 某些现有部署可能会受到旧公式假设的影响,需要更新相关工具。
- Kubernetes项目建议在升级OCI运行时之前进行兼容性测试。
❓
延伸问答
Kubernetes如何改进cgroup v1到cgroup v2的CPU权重转换?
Kubernetes改进了CPU权重转换公式,解决了CPU优先级分配问题,提升了优先级和粒度,使请求1 CPU的容器获得接近默认值的权重。
cgroup v1和cgroup v2之间的CPU权重映射公式是什么?
新的映射公式为:cpu.weight = ⌈10^(L²/612 + 125L/612 - 7/34)⌉,其中L = log₂(cpu.shares)。
旧的CPU权重转换公式存在哪些问题?
旧公式导致Kubernetes工作负载在CPU优先级上低于非Kubernetes进程,并且在小CPU请求时粒度不够,难以管理。
新的CPU权重转换公式如何解决优先级对齐问题?
新的公式使请求1 CPU的容器获得cpu.weight = 102,接近cgroup v2的默认值100,从而恢复了Kubernetes工作负载与系统进程之间的优先级关系。
在使用新公式时,现有部署可能会受到什么影响?
一些应用或监控工具可能需要更新,以适应新的二次转换公式,特别是那些基于旧公式计算CPU权重的工具。
Kubernetes项目对新转换公式的测试建议是什么?
Kubernetes项目建议在升级OCI运行时之前,在非生产环境中测试新转换公式,以确保与现有工具的兼容性。
➡️