OpsCanary
Back to daily brief
kubernetesPractitioner

Mastering the Shift: cgroup v1 CPU Shares to v2 CPU Weight in Kubernetes

5 min read Kubernetes BlogJan 30, 2026
Share
PractitionerHands-on experience recommended

The move from cgroup v1 to cgroup v2 addresses limitations in resource management, particularly in how CPU shares are defined. In cgroup v1, CPU shares were simply assigned in millicpu form, which lacked the flexibility and granularity needed for modern containerized applications. Cgroup v2 introduces CPU weight, which provides a more sophisticated approach to resource distribution, allowing for better performance tuning and fairness across containers.

The conversion from cgroup v1 CPU shares to cgroup v2 CPU weight is governed by a specific formula: $$cpu.weight = \lceil 10^{(L^{2}/612 + 125L/612 - 7/34)} \rceil, \text{ where: } L = \log_2(cpu.shares)$$. This quadratic function effectively maps the old linear shares to a new weight system, ensuring that containers are allocated CPU resources in a more balanced manner. The formula is designed to cross key values, such as (2, 1) and (1024, 100), which helps maintain consistency during the transition.

In production, you need to be aware of the implications of this change. The new formula is enabled from version 1.3.2 for runc and from version 1.23 for crun. Be cautious if you're relying on the older linear conversion formula, as it may lead to unexpected resource allocations. Understanding these nuances will help you optimize your Kubernetes deployments effectively.

Key takeaways

  • Understand the new formula for CPU weight: $$cpu.weight = \lceil 10^{(L^{2}/612 + 125L/612 - 7/34)} \rceil$$.
  • Recognize that cgroup v1 CPU shares are replaced by CPU weight in cgroup v2.
  • Be aware that the new conversion formula is enabled from version 1.3.2 for runc and 1.23 for crun.
  • Avoid assuming the older linear conversion formula; it may lead to resource allocation issues.
  • Know that KEP-2254 introduced this conversion to improve resource distribution.

Why it matters

This shift impacts how resources are allocated in Kubernetes, leading to more efficient use of CPU and better performance for containerized applications. Understanding this change is essential for maintaining optimal resource management in production environments.

When NOT to use this

The official docs don't call out specific anti-patterns here. Use your judgment based on your scale and requirements.

Want the complete reference?

Read official docs

Test what you just learned

Quiz questions written from this article

Take the quiz →

Get the daily digest

One email. 5 articles. Every morning.

No spam. Unsubscribe anytime.