Series · 5 parts

CPU Throttling: Choosing the Right Cloud CPU

2026-10-04 · Servloci Engineering · Discuss on LinkedIn

Cloud vCPUs get rationed: burst credits, steal time and container CPU quotas. This series covers how to spot it and how to pick the right CPU class: compute-intensive Go, Rust and C++ work on dedicated cores, IO-heavy services on medium general-purpose CPUs.

Want to break it yourself? The hands-on Pod CPU Throttling lab in System Failure Labs runs this on Kubernetes with the Grafana dashboard below.

PART 1

CPU Throttling: The Hidden Tax on Your Cloud Bill

You pick an instance with "4 vCPUs". You assume four cores of compute, all the time. Often you get far less, and nothing in your code tells you.

PART 2

Compute-Bound Go, Rust and C++: Buy Real Cores

If your service spends most of its time computing rather than waiting, the CPU class is the single biggest performance lever you have. More than most code optimisations.

PART 3

IO-Heavy Services: Why Medium CPUs Win

Most backend services don't compute much. They wait: for the database, for a downstream API, for disk, for the client. For these, paying for dedicated cores is often burning money.

PART 4

How to Detect CPU Throttling in 5 Commands

Choose instance types from evidence. These five checks tell you whether you're compute-bound, IO-bound, or being throttled.

PART 5

Choosing a CPU Class: Decision Matrix + Cost Math

Four parts of theory and measurement. Here's how to decide.

Grafana dashboard

All queries from this series in one import-ready dashboard: CFS throttle ratio, frozen seconds, usage vs limit/request, top throttled containers, PSI, steal and Go scheduler latency. Needs cAdvisor, kube-state-metrics and node-exporter (kube-prometheus-stack has all three). Import via Dashboards → New → Import.

Download dashboard JSON