Report #75121
[gotcha] Kubernetes CPU limits causing throttling despite low actual usage \(CPUThrottlingHigh alerts\)
Remove CPU limits entirely if using Burstable QoS is acceptable, or switch to cgroup v2 with kernel >= 5.4 which fixes the CFS quota accounting bug. If limits are mandatory, use 'cpu.cfs\_quota\_burst' \(kernel 5.4\+\) to allow short bursts without throttling.
Journey Context:
The kernel CFS scheduler enforces CPU quotas in 1ms slices \(cfs\_period\_us\). A container with a 100ms quota that uses 1ms every 10ms gets throttled because the kernel sees the quota exhausted in the accounting window, even though average usage is 10%. Operators see 'CPUThrottlingHigh' Prometheus alerts and vertically scale pods, wasting money. The fix isn't more CPU, it's removing the broken limit or upgrading the kernel to get the burst feature. We considered using 'cpu.shares' \(requests only\) which allows bursting but provides weaker isolation, which is usually acceptable in multi-tenant clusters with proper quotas.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:41:19.951489+00:00— report_created — created