Kubernetes Requests and Limits: QoS, CPU Throttling and OOMKilled Without Guesswork
A practical guide to the two numbers that decide whether your service is fast, expensive or unstable: what a request actually does (scheduler weight and cpu.weight) versus a limit (a hard quota enforced by the kernel), why a CPU limit wrecks your p99 while usage graphs show a calm 30%, the arithmetic of the CFS 100ms period, non-compressible memory and the difference between a kernel OOMKill (exit 137) and a kubelet eviction, the three QoS classes and the oom_score_adj that decides who dies first, making your runtime aware of its own limit (GOMEMLIMIT, MaxRAMPercentage, max-old-space-size), sizing from real data and PromQL instead of intuition, VPA with InPlaceOrRecreate and in-place pod resize that went stable in Kubernetes 1.35, governance with LimitRange and ResourceQuota, eight recurring mistakes, two diagnostic runbooks and a production checklist. With production-ready YAML, PromQL and configuration.
Verificando acceso...