When you compare VPS plans, the debate over dedicated vs shared vCPU matters far more than the raw core count printed on the pricing page. Two providers can both advertise “4 vCPUs” for a similar price, yet deliver wildly different real-world performance depending on how those virtual cores are backed by physical hardware. This guide explains what a vCPU actually is, how CPU oversubscription and overselling work, why CPU steal time quietly kills performance on economy hosts, and why a smaller number of fast, dedicated cores can comfortably out-serve a larger number of slow, contended ones.
What Is a vCPU?
A vCPU (virtual CPU) is a virtual processing unit that the hypervisor presents to your virtual machine. Behind the scenes, the hypervisor maps each vCPU onto a physical CPU core or hardware thread on the host node. When your application asks to run code, the hypervisor schedules that work onto real silicon for a slice of time, then moves on to the next tenant.
The important point is that a vCPU is a promise of compute, not a fixed lump of hardware you own outright. A vCPU on a modern AMD EPYC node with high clock speeds and dedicated scheduling is a very different animal from a vCPU on an older, heavily packed server. If you are still weighing hosting tiers in general, our hosting types decision guide is a useful companion read.
Dedicated vs Shared vCPU Explained
The core distinction comes down to guaranteed physical time. With a dedicated vCPU, your virtual cores are pinned to physical cores or threads that are reserved for you. When your workload wants to run, the hardware is available almost immediately, because no other tenant is competing for that exact slice of the CPU.
With a shared vCPU, many virtual machines share the same underlying physical cores. The host frequently sells more vCPUs across all its tenants than it has physical threads, a practice known as overselling. Under light load this works fine, because most VMs are idle most of the time. Under sustained load, however, the VMs sharing those cores start to compete, and the hypervisor has to make everyone wait their turn.
Dedicated vs Shared vCPU: What Changes for You
For you as a buyer, the practical difference in dedicated vs shared vCPU is consistency. Dedicated cores give predictable response times whether the host is quiet or busy. Shared cores give you a lower price and are perfectly fine for light, bursty workloads, but performance can swing depending on what your neighbours are doing. If a nearby tenant starts a heavy backup or compilation job, you can feel it as slower page loads even though your own traffic has not changed. This is the classic “noisy neighbour” problem, and it is invisible on the spec sheet.
How CPU Oversubscription Works
CPU oversubscription is the ratio between the number of vCPUs a host sells and the number of physical threads it actually has. A node with 64 physical threads that sells 128 vCPUs is running a 2:1 oversubscription ratio; some economy providers push this to 4:1, 8:1 or higher to maximise revenue per server.
Oversubscription is not inherently bad. It relies on statistical multiplexing: at any given moment, most VMs are waiting on the network, on disk, or on a human, so their vCPUs sit idle and can be lent to whoever needs them. The maths only breaks down when too many tenants want the CPU at the same time. That is when requests queue, latency climbs, and CPU steal time appears. Aggressive overselling is essentially a bet that your workload will stay quiet, and you pay the price on the days it does not. Shared hosting takes this even further with hard per-account caps, which we cover in our guide to CloudLinux LVE limits.
Why 2 Fast vCPUs Beat 4 Slow Ones
Here is the counter-intuitive truth: for most web workloads, two fast dedicated vCPUs will out-serve four slow shared ones. The reason is that WordPress, PHP, Laravel and most CMS-driven sites are largely single-threaded per request. A single page render runs mostly on one core, so the single-core speed of that core, and whether it is available instantly, matters far more than the total vCPU count.
Four shared vCPUs sound generous, but if each is a fraction of a slow, contended core suffering steal, no individual request runs quickly. Two modern EPYC cores with high clocks and guaranteed time will finish each request faster and deliver lower time to first byte. More cores only help when your workload is genuinely parallel; extra vCPUs cannot make a single-threaded request finish sooner. If shaving milliseconds is your goal, our guide to sub-100ms TTFB shows how much per-core speed contributes.
| Factor | 2 fast dedicated vCPUs | 4 slow shared vCPUs |
|---|---|---|
| Per-core speed | High (modern EPYC, high clocks) | Low to moderate, often older silicon |
| Availability under load | Guaranteed, no waiting | Contended, queued behind neighbours |
| CPU steal time | Near zero | Can spike high when host is busy |
| Single-request latency | Low and predictable | Variable, spikes at peak |
| Best for | Consistent production traffic | Light, bursty, budget workloads |
How to Detect CPU Steal Time
CPU steal time is the percentage of time your vCPU wanted to run but the hypervisor handed the physical core to another tenant instead. It is reported as the %st column in Linux monitoring tools, and it is the single clearest signal that you are on an oversold host or sitting next to a noisy neighbour. On a healthy dedicated setup, steal should sit at or very near zero.
You can read steal live with top. Look at the CPU summary line and check the st figure:
$ top
%Cpu(s): 18.2 us, 4.1 sy, 0.0 ni, 65.0 id, 0.0 wa, 0.0 hi, 0.4 si, 12.3 st
^^^^
steal time = 12.3%
For a rolling view, vmstat 1 prints one line per second, with steal in the st column on the far right:
$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 512340 10240 204800 0 0 4 12 220 410 17 3 68 0 12
1 0 0 511990 10240 204800 0 0 0 0 210 395 15 2 71 0 12
A persistent steal figure in the low single digits is usually tolerable; anything routinely above roughly 5 to 10 percent means your host is oversold and your VM is being starved. For the precise definition of every field, see the Linux top(1) manual.
How to Benchmark vCPU Performance
Steal time tells you about contention, but you also want to measure raw speed. The two workloads worth separating are single-core and multi-core performance, because they answer different questions. Single-core results predict how fast an individual page render or PHP request will complete; multi-core results predict throughput under many concurrent requests.
- Run
sysbenchCPU tests in both single-thread and multi-thread modes to compare per-core and aggregate speed. - Use Geekbench 6 for a cross-provider single-core and multi-core reference score.
- Watch
%stintoporvmstatwhile the benchmark runs, not just at idle, to catch steal that only appears under load. - Repeat tests at different times of day; oversold hosts often look fine at 3am and struggle at peak.
For a full walk-through of commands and how to read the numbers, follow our guide on how to benchmark your VPS. If you want to understand why the underlying silicon matters so much, our comparison of AMD EPYC vs Xeon goes deeper.
Choose the Right vCPU Plan
Choosing well is a matter of matching the CPU model to your workload rather than chasing the biggest core count. Be honest about how your traffic behaves before you decide.
- Light, bursty or development sites: a shared vCPU plan is cost-effective and perfectly adequate. Occasional steal will not hurt you.
- Consistent production traffic, WooCommerce, or client sites: choose dedicated vCPUs so response times stay predictable regardless of neighbour activity.
- Latency-sensitive apps: prioritise per-core speed and near-zero steal over sheer vCPU count.
UK Speed runs its UK VPS fleet on modern AMD EPYC processors, DDR5 memory and enterprise NVMe storage, with dedicated resources rather than heavy overselling. That is the practical reason two of our fast cores can keep pace with four contended ones elsewhere. If the hardware terms are unfamiliar, our explainer on enterprise hardware explained unpacks why each component matters.
Key Differences at a Glance
| Attribute | Dedicated vCPU | Shared vCPU |
|---|---|---|
| Physical time | Guaranteed / pinned | Shared across tenants |
| Oversubscription | None or minimal | Often high (overselling) |
| CPU steal time | Near zero | Can be significant under load |
| Noisy neighbour risk | Very low | Present |
| Performance consistency | Predictable | Variable |
| Typical price | Higher | Lower |
| Best fit | Production, latency-sensitive | Light, bursty, budget |
Conclusion
The number of vCPUs on a plan tells you very little on its own. What decides real performance is whether those cores are fast and dedicated, or slow and shared under heavy CPU oversubscription. Because most web workloads lean on single-core speed, two dedicated modern cores frequently beat four contended ones, and CPU steal time is the metric that exposes the gap.
Match the model to your workload: shared for light and bursty, dedicated for consistent production traffic. Measure before you commit, and keep an eye on steal.
- Check
%stwithtoporvmstaton your current VPS to see if you are being throttled. - Run a single-core and multi-core sysbench test, watching steal during the run.
- Compare per-core speed, not just vCPU count, across shortlisted plans.
- For production sites, favour dedicated vCPUs on modern EPYC hardware.
Get dedicated vCPU on a UK Speed VPS
Fast AMD EPYC cores with the resources you pay for, no oversubscription surprises, hosted in the UK.
