what's meaning the container_cpu_cfs_throttled_seconds_total metrics
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
container_cpu_cfs_throttled_seconds_total is a cumulative metric that tracks how much time a container has been throttled by the Linux Completely Fair Scheduler CPU quota mechanism. In Kubernetes, it is one of the clearest signals that a container is hitting its CPU limit and being prevented from using more CPU even though it wants to.
What CPU Throttling Means
When a container has a CPU limit, the kernel can enforce that limit with CFS quota rules. If the process consumes its allowed CPU time for the scheduling period, it gets throttled until the next period.
That means the application is runnable but temporarily prevented from executing because it exceeded the configured CPU budget.
What the Metric Measures
container_cpu_cfs_throttled_seconds_total is a monotonically increasing counter. It tells you the total throttled time accumulated since the container started.
The key implications are:
- It is cumulative, not instantaneous.
- It must usually be interpreted with a rate function.
- A larger value over time means more enforced CPU restriction.
By itself, a raw counter value is not very informative. The trend is what matters.
PromQL Example
A common PromQL query is:
This shows how quickly throttled seconds are accumulating over the last five minutes.
If a container has a high throttling rate and also shows latency or throughput issues, CPU limits are a serious suspect.
How to Interpret It in Kubernetes
This metric becomes meaningful when read alongside:
- CPU limits configured on the pod.
- Actual CPU usage.
- Request latency or queueing symptoms.
- Other CFS metrics such as throttled periods.
A container with low CPU usage but some throttling may not be in real trouble. A container with sustained throttling during user-facing slowdowns probably is.
So the metric is not an abstract kernel fact. It is an operational symptom of resource pressure relative to configured limits.
Example Scenario
Suppose a container has a CPU limit of 500m and the workload is CPU-bound. Under load, the process tries to use more CPU than the quota allows. The kernel throttles it repeatedly, and the counter rises.
Operationally, that can look like:
- Higher response times.
- Longer job runtimes.
- Spiky application throughput.
The container is not necessarily out of memory or crashing. It is simply being rate-limited on CPU time.
What to Do When It Is High
If throttling is actually hurting the workload, the usual options are:
- Raise the CPU limit.
- Remove a limit if cluster policy allows it.
- Reduce CPU demand through application tuning.
- Scale out so the load is spread across more replicas.
The right fix depends on whether the container is underprovisioned, the limit is too strict, or the workload is simply too bursty for the current resource settings.
Common Pitfalls
- Looking at the raw counter instead of a rate over time.
- Treating every nonzero value as an incident even when the workload performs fine.
- Ignoring the configured CPU limit and reading the metric without resource context.
- Confusing throttling with CPU usage; they are related but not identical.
- Trying to fix throttling without confirming that it correlates with an actual performance problem.
Summary
- '
container_cpu_cfs_throttled_seconds_totaltracks cumulative time a container was throttled by CPU quota enforcement.' - In Kubernetes, it usually points to a container hitting its CPU limit.
- Use a rate-based PromQL query to interpret it meaningfully.
- Read it alongside CPU usage, limits, and application latency.
- High throttling matters most when it correlates with real performance degradation.
Related reading
- What's the best way to share/mount one file into a pod?
- Whats the brief factual difference between Kubernetes, Helm and Rancher and others
- What's the difference between Apache's Mesos and Google's Kubernetes
- What's the difference between Docker Compose and Kubernetes?
- What's the difference between Docker and Python virtualenv?
- What's the difference between Docker and Python virtualenv?
- What's the best way to monitor rabbitmq to make sure everything is running smoothly?
- What's the difference between Docker Compose and Kubernetes?

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.