In this post
A VPS and a dedicated server can run the same Linux image and the same application. The difference is what sits underneath: a slice of a shared host, or the whole machine. For small and spiky workloads the slice is often the right call. For workloads that run hard around the clock, bare metal tends to win on predictability and on price per unit of compute. Here is how to tell which case you are in.
What you actually rent
A VPS (virtual private server) is a virtual machine. A hypervisor such as KVM runs many VMs on one physical host and divides its CPU threads, memory, disks and network among them. Some plans reserve hardware threads for you. Many oversubscribe: they sell more vCPUs than the host has threads, betting that not every tenant is busy at once.
A dedicated server is the physical machine itself. Every core, every gigabyte of RAM, the NVMe drives and the network port are yours, and there is no hypervisor under your operating system unless you install one.
Noisy neighbors and CPU steal
On a shared host, each vCPU is a thread that the hypervisor schedules alongside everyone else’s. When other tenants are busy, your vCPU can be ready to run and still have to wait. Linux reports that wait as steal time:
top -bn1 | head -n 5
vmstat 1 5In top, steal is the last field of the %Cpu(s) line; in vmstat, it is the st column. In this example, 7.6% of CPU time was stolen:
%Cpu(s): 41.2 us, 3.0 sy, 0.0 ni, 47.5 id, 0.3 wa, 0.0 hi, 0.4 si, 7.6 stst is the share of time your virtual CPUs wanted to run while the hypervisor served someone else. Short spikes are common; steal that stays high while your application is busy means you are paying for vCPUs that wait in line. On burstable plans, throttling after you run out of CPU credits can look the same.
Steal is only the visible part. Even with dedicated vCPUs, tenants share the L3 cache, memory bandwidth and often the storage and network paths, so a neighbor’s batch job can still add jitter to your response times. On bare metal, st stays at zero: there is no hypervisor below you.
Disk I/O: NVMe without a queue in front of you
VPS storage is usually a share of local NVMe drives or network block storage, where every read and write crosses the network to a storage cluster. Both are commonly capped per volume, and network storage adds a round trip to every I/O. For databases, search indexes and game worlds, latency per operation matters more than headline throughput: watch wa (I/O wait) in top and the r_await and w_await columns of iostat -x 1.
On a dedicated server, the NVMe drives sit on the machine’s own PCIe bus, and their full queue depth serves your workload alone. Every DediJet configuration includes NVMe, with software RAID 1 by default on two-disk servers. Measure rather than trust a spec sheet; this fio run tests 4 KB random reads on a temporary file:
apt install -y fio
fio --name=randread --filename=/root/fio.test --size=4G --rw=randread --bs=4k --iodepth=32 --numjobs=4 --ioengine=libaio --direct=1 --runtime=60 --time_based --group_reporting
rm /root/fio.testRun it on your current VPS too, and compare the IOPS and the clat percentiles (completion latency) in both outputs.
Bandwidth: per-GB egress or an unmetered port
Cloud platforms and many VPS plans meter egress: you pay for every gigabyte that leaves, sometimes after an included allowance. The cost grows in a straight line with your traffic:
monthly egress cost = GB sent per month × price per GBA dedicated server with an unmetered port works the other way: you pay for the port speed, and traffic is not counted. Every DediJet plan includes unmetered bandwidth at its port speed (1 Gbps or 10 Gbps), around the clock, within the Acceptable Use Policy. A 1 Gbps port running flat out for 30 days moves about 324 TB in each direction.
To find where the two models cross, divide a server’s monthly price by the per-GB rate in your quote. For the Ryzen 7 9700X, 149 ÷ rate gives the number of gigabytes beyond which egress alone costs more than the whole server. Our guide to unmetered bandwidth works through the numbers.
Root access, IPMI and the hardware itself
Both options give you root inside the operating system. The difference is what surrounds it:
- Out-of-band access. DediJet servers include IPMI/KVM-over-IP: a browser-based console, power control and virtual media to mount your own ISO. If a firewall rule or a kernel update locks you out, you still have a screen and a keyboard. A VPS console reaches the VM, never the hardware.
- Your own hypervisor. Install Proxmox VE in one click, or VMware ESXi with your own license, TrueNAS or NixOS from an ISO, and run VMs and containers without nested virtualization, which many VPS plans disable or slow down.
- Real hardware data. SMART and NVMe health, CPU topology and clock behavior, NIC settings: you see the actual devices, not virtual ones.
The trade-off: servers are unmanaged, so you are the administrator. Our first steps and IPMI/KVM console guides cover the basics.
Cost math: price per core and per GB of RAM
A fair comparison divides the monthly price by what you get. Here are three DediJet servers (monthly prices, excluding VAT):
| Server | Price | Cores / threads | RAM | Storage · port | Per core | Per thread | Per GB RAM |
|---|---|---|---|---|---|---|---|
| Ryzen 7 9700X | $149/mo | 8C/16T | 64 GB DDR5 | 2 × 1 TB NVMe · 1 Gbps | $18.63 | $9.31 | $2.33 |
| Ryzen 9 9950X | $269/mo | 16C/32T | 128 GB DDR5 | 2 × 2 TB NVMe · 1 Gbps | $16.81 | $8.41 | $2.10 |
| EPYC 9354P | $699/mo | 32C/64T | 384 GB DDR5 ECC | 2 × 3.84 TB NVMe · 10 Gbps | $21.84 | $10.92 | $1.82 |
Each column divides the full price by one resource, so the figures do not add up. Storage, the unmetered port, an IPv4 address, IPMI and DDoS mitigation are included in every line.
Apply the same yardstick to any cloud or VPS quote. One vCPU is usually one hardware thread, not a full core, so compare per thread, or halve the vCPU count to get cores:
price per thread = monthly cost ÷ dedicated vCPUs
price per core = monthly cost ÷ (dedicated vCPUs ÷ 2)
monthly cost = hourly price × 730Use dedicated vCPUs, not shared or burstable ones, and add what the server price already includes: block storage, egress at your real volume, extra IP addresses. For example, a 16-vCPU instance with 64 GB of RAM must cost less than $149 per month, before storage and egress, to match the Ryzen 7 9700X per thread.
Two cautions. A thread on a Zen 5 core boosting to 5.5 GHz and a vCPU on a lower-clocked server part do not do the same work per second, so price per thread is a starting point, not a verdict. And cores are not the only axis: the EPYC 9354P costs more per core, yet it has the lowest price per GB of memory of the three, plus ECC and a 10 Gbps port. Test your real workload with our benchmark guide.
When a VPS is still the right choice
- The workload is tiny. A personal site, a bot or a small VPN endpoint does not need a whole machine. Our lowest-priced in-stock server is $59/mo; if your workload fits a small VM, a VPS will cost less.
- Demand is bursty or short-lived. A CI runner for an hour, a load test, a weekly data job: hourly or per-second billing beats a monthly server that sits idle.
- You need autoscaling. If your stack scales out automatically with traffic, or down to zero, cloud instances fit that model; DediJet bills monthly.
- You rely on managed services. Managed databases, queues and object storage on the same platform are worth a premium to some teams.
- You want the platform to absorb hardware failures. Some platforms restart a VM on another host when hardware fails. A dedicated server is one machine: we replace a failed component within 4 hours of diagnosis, but real availability comes from backups and a second server.
Many teams end up hybrid: dedicated servers for the steady baseline, cloud instances for the bursts.
Checklist: which one should you pick?
Bare metal is likely the better deal if most of these are true:
- The workload runs around the clock at a steady baseline.
- You see sustained steal time, or latency jitter your own code does not explain.
- Disk latency matters: databases, search, game worlds, build caches.
- Egress is a large or unpredictable part of your bill.
- You need your own hypervisor, a custom ISO or an out-of-band console.
- Your quote, per dedicated vCPU with storage and egress added, is above our per-thread figures.
- Someone on your team is comfortable administering a server.
Stay on a VPS if you need hourly billing, autoscaling or only one or two vCPUs.
Ready to compare? Line configurations up on the comparison page, or start with the Performance and Enterprise families. Billing is monthly with no setup fee, so a one-month test with your real workload is a small commitment.
Servers in this post
- AMD Ryzen 7 9700X8C / 16T · 64 GB DDR5 · 2 × 1 TB NVMe · 1 Gbps$149/moIn stockDeploy the AMD Ryzen 7 9700X
- AMD Ryzen 9 9950X16C / 32T · 128 GB DDR5 · 2 × 2 TB NVMe · 1 Gbps$269/moIn stockDeploy the AMD Ryzen 9 9950X
- AMD EPYC 9354P32C / 64T · 384 GB DDR5 ECC · 2 × 3.84 TB NVMe · 10 Gbps$699/moIn stockDeploy the AMD EPYC 9354P