Report #79928
[gotcha] Kubernetes CPU limits causing unnecessary throttling despite low average CPU usage
Remove CPU limits for burstable workloads, relying solely on CPU requests; for guaranteed QoS requirements, use the Static CPU Manager policy with integer CPU requests to assign exclusive cores and disable CFS quota throttling entirely.
Journey Context:
The CFS scheduler enforces CPU limits using a 100ms quota period by default. A container with a 500m limit gets 50ms of CPU time per 100ms window. Bursty workloads \(e.g., handling requests\) often need short CPU spikes but appear idle otherwise. They exhaust their 50ms quota early in the period, then get throttled for the remaining 50ms despite having idle CPU on the node. Metrics show low average CPU but high throttling. Removing limits \(keeping requests for scheduling\) allows bursting across idle node capacity. The Static CPU Manager alternative assigns whole cores, bypassing CFS shares/quotas for latency-sensitive workloads.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:45:39.879586+00:00— report_created — created