Every provider sells servers by vCPU count, which implies the number means the same thing everywhere. It does not, and the gap between shared and dedicated CPU explains a large share of unexplained latency problems.
What a vCPU is
A vCPU is usually a hardware thread on a physical core, presented to your virtual machine by a hypervisor. The hypervisor schedules many tenants across the same physical hardware.
How that scheduling works is the entire difference.
Shared CPU
On shared plans, your vCPUs compete with other tenants for physical time. When neighbours are quiet, you get excellent performance for the price. When they are busy, you wait.
The symptom is variance, not consistent slowness. Response times fluctuate without any change in your own traffic. Teams often spend days profiling their application for a problem that lives underneath it.
Burstable CPU
Burstable plans go further: you accrue credits while idle and spend them when busy. Sustained load exhausts the credits, after which you are throttled to a baseline that can be a small fraction of nominal capacity, or billed for overage.
Burstable is excellent for genuinely intermittent workloads and a poor choice for anything with steady load. AWS T family, Google E2 in some configurations and equivalents elsewhere all behave this way.
Dedicated CPU
Dedicated plans reserve physical cores for you. Performance is consistent because nobody else is scheduled on them. You pay more per core, and you get predictability.
Choosing
| Workload | Choose |
|---|---|
| Development and staging | Shared or burstable |
| Low-traffic site, mostly idle | Shared or burstable |
| Production application with steady traffic | Dedicated |
| Database | Dedicated |
| CI runners and build farms | Dedicated |
| Latency-sensitive API | Dedicated |
How to tell you have outgrown shared
- Response time percentiles spread out while average stays acceptable.
- CPU steal time is non-zero and rising. On Linux, check the
stcolumn intoporvmstat. - Identical requests take noticeably different times.
- Performance varies by time of day independently of your traffic.
Steal time is the clearest signal: it is time your virtual CPU was ready to run but the hypervisor gave the physical core to someone else.
Where each provider sits
Every provider offers both. DigitalOcean separates Basic from General Purpose and CPU-Optimised. Linode separates Shared from Dedicated. Kamatera exposes it as a CPU type. AWS encodes it in the instance family. See EC2 instance families and Droplet sizing.
Common questions
Is dedicated always worth it?
No. For idle workloads it is money spent on capacity you never use.
What is a safe steal time?
Near zero is healthy. Consistently elevated steal means contention.
Do vCPUs compare across providers?
Not reliably. Benchmark your own workload rather than comparing counts.