GitHub - inevolin/k8s-cpu-limits-analyzed: Kubernetes CPU limits make your apps (very) slow and costly
Pangram verdict · v3.3
We believe this text is mainly AI, with some human-written content.
AI likelihood · overall
AIArticle text · 228 words · 4 segments analyzed
Platform engineering · analysis We tested the same app with and without a CPU limit. Same code, same CPU request, same load. The only difference was the limit. Here is what we measured — and how to check it on your own cluster.
TL;DR Remove CPU limits. They freeze your apps many times per second, even when the node has free CPU. Keep CPU requests. Requests are the real protection. They guarantee every app its share. Keep memory limits. Memory is different. A memory limit still protects the node.
Faster: tail latency holds up under traffic peaks instead of collapsing, and CPU-bound startup work finishes about 2x sooner (sections 5, 10). Less hardware: most clusters reserve far more CPU than they ever use at peak. Right-sizing requests after dropping limits lets a meaningful share of nodes go (section 10). Cheaper: a worked, illustrative cost model puts this in the tens of thousands of dollars per year per cluster (section 10) — plug in your own prices to get a real number.
In this analysis: 1. Requests vs limits · 2. How throttling works · 3. CFS fair sharing · 4. The worst case · 5. What we measured · 6. Noisy neighbor · 7. When it breaks · 8. One step for .NET · 9. The plan · 10. Outcomes · 11. Q&A · 12. Glossary Going deeper.