# Dedicated CPU VPS vs shared vs general purpose: how to choose

URL: https://cloudj.net/blog/shared-vs-dedicated-cpu-vps
Published: 2026-11-11 · Updated: 2026-11-11

> How to choose a dedicated CPU VPS, a general-purpose VPS or a shared-CPU VPS: spotting noisy neighbours with steal time and which workloads fit each type.

When you deploy a server on Cloudj you pick a CPU type before you pick a size: shared (labelled "Availability"), general purpose, or dedicated. A dedicated CPU VPS gives your virtual machine cores reserved for it, which matters for steady, CPU-heavy work. The shared type is the usual starting point for workloads that sit idle most of the time and burst occasionally. General purpose sits between them. Picking the right one is less about how big your server is and more about how its CPU usage looks over a day. This guide explains the three types, shows how to measure whether CPU contention is actually hurting you, and maps common workloads to the type that usually fits.

## The three CPU types in plain terms

A physical host has a fixed number of CPU cores, and the hypervisor schedules every virtual machine's vCPUs onto them.

- **Shared ("Availability")**: your vCPUs are scheduled on cores that other virtual machines also use. Most of the time this is invisible, because most servers are idle most of the time. When several neighbours get busy at once, your vCPU may wait for its turn.
- **General purpose**: a balanced middle tier for production services that want more consistency than the shared tier but are not pinned at full CPU all day. Check the console for how each type is offered in your location.
- **Dedicated**: cores are reserved for your virtual machine. Nobody else's work is scheduled on them, so CPU performance stays steady under sustained load.

Whatever the type, you manage the server the same way from the console: SSH keys, CPU/RAM/network metrics, reboot, resize of CPU and RAM, disk growth, snapshots and backups, and custom images.

## Comparison: which CPU type fits which workload

| | Shared (Availability) | General purpose | Dedicated |
|---|---|---|---|
| CPU behaviour | Bursty use is fine, sustained use can vary | Balanced, more consistent | Steady under sustained load |
| Noisy-neighbour exposure | Highest | Lower | Minimal for CPU |
| Good for | Personal sites, blogs, small bots, dev and staging, VPN for a few users | Business websites, APIs, small databases, CMS and e-commerce | Databases under load, CI builds, video or image processing, game servers, trading tools |
| Poor fit for | Long CPU-heavy jobs, timing-sensitive real-time work | All-day number crunching | Mostly idle servers, where you pay for reserved cores you do not use |

For live prices of each type in each location, see the [pricing page](https://cloudj.net/pricing).

## How to tell if CPU contention is hurting you

Do not upgrade on a hunch. Linux reports the time your vCPU wanted to run but the hypervisor gave the core to someone else. It is called steal time, shown as `st`.

Run this during a busy period:

```bash
# Five samples, two seconds apart; watch the "st" column on the right
vmstat 2 5

# Or per CPU, if the sysstat package is installed
sudo apt install -y sysstat
mpstat -P ALL 2 5
```

In `top`, steal appears in the CPU summary line as `st`. How to read it:

1. **Steal near zero and CPU usage low**: your bottleneck is not CPU. Look at RAM, disk or your application. Our guide to [monitoring VPS resources](https://cloudj.net/blog/monitor-vps-resources) covers the other signals.
2. **Steal near zero but CPU usage pinned high**: you simply need more vCPU. Resize, or move to a type that suits sustained load.
3. **Steal regularly noticeable while your workload is busy**: that is contention. Moving to general purpose or a dedicated CPU VPS is the direct fix.

Also check the CPU graph in the console over several days. A flat line near the top means sustained load, a pattern of short spikes means bursty load, and the shape is a better guide than any single reading.

## Workload notes

### Web hosting and CMS

Most WordPress, Laravel or Node.js sites idle between requests and burst on page loads. Shared is fine for small sites; general purpose suits a business site where consistent response times matter. Caching usually helps more than a CPU type change. See [Laravel on a VPS](https://cloudj.net/blog/laravel-vps-deploy) or [WordPress for Vietnamese websites](https://cloudj.net/blog/wordpress-vps-vietnam) for setup.

### Databases

A database under steady query load is the classic case for dedicated CPU, because query time variance shows up directly in your application. For a small database behind a low-traffic app, general purpose is a reasonable start. Our [PostgreSQL VPS setup](https://cloudj.net/blog/postgresql-vps-setup) guide includes tuning basics.

### Builds, CI and media processing

Compilation, test suites, image resizing and video encoding keep every core busy for minutes at a time. On a shared type these jobs get slower exactly when the host is busy, which makes build times unpredictable. A dedicated CPU server, possibly on hourly billing and deleted after the job, is usually the better answer; see [hourly vs monthly VPS](https://cloudj.net/blog/hourly-vs-monthly-vps).

### Game servers and real-time tools

Game servers, trading bots and anything that runs a tight loop care about consistent scheduling more than raw throughput. Dedicated CPU reduces the jitter that players or strategies notice.

## Changing type later

If you start on shared and the measurements say you need steadier CPU, the safe path is to save a [custom image](https://cloudj.net/custom-images) of the configured server, deploy a new server with the type you need from that image, test it, and then switch traffic and delete the old one. For more capacity without changing type, you can resize CPU and RAM and grow the disk from the console.

## The verdict: when a dedicated CPU VPS is worth it

**Choose shared CPU if** the server is idle most of the time, short bursts are its normal pattern, and occasional slowdowns are acceptable. It is the right choice for learning, personal projects, staging and small bots.

**Choose general purpose if** the server runs a production service that should feel consistent but is not CPU-bound all day.

**Choose a dedicated CPU VPS if** the CPU stays busy for long stretches, steal time shows up under load, or consistent timing matters to your users or your strategy.

If even the largest dedicated CPU size feels like a compromise, read [VPS vs dedicated server](https://cloudj.net/blog/vps-vs-dedicated-server). If you are still on shared web hosting, start with [VPS vs shared hosting](https://cloudj.net/blog/vps-vs-shared-hosting), and use the [VPS locations guide](https://cloudj.net/blog/vps-locations-guide) to place the server near your users.

## FAQ

### What is steal time on a VPS?

Steal time is the share of time your vCPU was ready to run but the hypervisor scheduled another virtual machine on the core. It shows as `st` in `top` and `vmstat`. Regular steal under load is a sign of CPU contention.

### Does a dedicated CPU VPS make my site faster?

Only if CPU contention was the bottleneck. If steal time is near zero, a slow site is more likely limited by RAM, disk, the database or the application itself.

### Are all three CPU types available in every location?

Check the console for your location. The available types, plans and OS images can differ by location.

### Can I mix CPU types?

Yes. A common pattern is a dedicated CPU database server with a shared or general-purpose web server in front of it, in the same location.

## Pick the type and test it

The quickest way to decide is to deploy the type you think fits, run your real workload, and watch steal time and the CPU graph. The [Cloudj console](https://app.cloudj.net) shows the exact price of each type before you deploy, and the [cloud servers](https://cloudj.net/cloud-servers) page lists every location.
