Updated 25 October 2026 · Published by Zoorik
CPU throttling in Kubernetes is when the Linux kernel holds back a container that hits its CPU limit. It keeps running, only slower.
On Linux nodes, the kubelet, the node’s agent, turns a CPU limit into a quota of CPU time per period. A period is 100 milliseconds by default. Once the container uses up its quota, it waits for the next period.
What causes CPU throttling in Kubernetes
- A CPU limit below what the app needs at peak.
- Busy threads on several CPUs, which share one quota and spend it early.
- A default limit from a LimitRange, for containers that set none.
An example from the Kubernetes docs
The docs run a pod with a 0.5 CPU request and a 1 CPU limit. Its app tries to use 2 CPUs.
kubectl top pod shows 974m, or 0.974 CPU, just under the limit. The docs say the container’s CPU use is being throttled.
Why it matters for your bill
Kubernetes CPU throttling slows your app, and three quick fixes can add nodes:
- Raise the request with the limit.
- Raise a limit that has no request, since Kubernetes uses it as the request.
- Remove the limit and set a larger request.
The scheduler places pods by their requests, so bigger requests mean fewer pods per node and more nodes to pay for.
Coral rebalances CPU and memory requests on AKS and EKS to match real use, so the same pods fit on fewer nodes. On regular pods, it never reduces a container’s CPU or memory limit.
The free assessment works out your own figure.
Read next: Kubernetes pod rebalancing
Sources: Kubernetes, “Resource Management for Pods and Containers” (opens in a new tab); Kubernetes, “Assign CPU Resources to Containers and Pods” (opens in a new tab); Kubernetes, “Kubelet Configuration (v1beta1)” (opens in a new tab); The Linux Kernel documentation, “CFS Bandwidth Control” (opens in a new tab).