Dedicated server or VPS: choosing by real workload
A VPS fits while load is spiky and stays within 4–8 cores and 16 GB of memory. A dedicated server wins where load is flat and round-the-clock: you pay for physical cycles and IOPS nobody can take away. The line is not drawn by site traffic but by which subsystem saturates first — CPU, memory or disk.
- The clearest sign a VPS is short is steal time above 5% in
vmstat: your cycles go to neighbours. - The second sign is
%iowaitabove 15–20 while CPU stays low: the shared array cannot keep up. - On cost, bare metal overtakes a VPS at roughly 8 cores and 32 GB: Dedicated Pro DE is $99 per month.
- On VDS, outbound SMTP (ports 25, 465, 587) is closed by default and opened on request.
Where the difference physically lies
A VPS is a virtual machine on a shared host. The hypervisor splits cores, CPU cache and the disk queue across every tenant. Your vCPUs are real only to the extent a neighbour did not claim them in the same millisecond.
A dedicated server hands you the entire node: the cores, every memory channel, the disk controller and the network port. The full picture is in what a dedicated server is. If you are comparing a VPS with cloud instances rather than bare metal, see the difference between a cloud server and a VPS.
Subsystem comparison
| Parameter | VPS | Dedicated server |
|---|---|---|
| CPU | vCPU, cycles shared, steal time possible | Whole physical cores, steal time is zero |
| Memory | Hypervisor limit, ECC not guaranteed to the tenant | 16–64 GB DDR4 ECC, all channels yours |
| Storage | Shared array, IOPS capped by quota | SSD or NVMe in RAID1/RAID10 with no co-tenants |
| Kernel and modules | Custom kernels often blocked, nested virtualisation limited | Any kernel, KVM and Proxmox on your own hardware |
| Scaling | Minutes, resources added from the panel | A physical operation: swap parts or a new node |
| Hardware failure | The hypervisor moves the machine | Recovery is on you, RAID covers one failed drive |
How to measure that the VPS is saturated
Do not guess from the panel graph: capture metrics at peak.
# Steal time: the st column. A sustained value above 5 is a warning
vmstat 1 10
# Latency and disk queue; watch await and aqu-sz
iostat -x 1 5
# Random 4K writes - exactly what degrades on a shared array
fio --name=rw --rw=randwrite --bs=4k --size=1G --runtime=60 \
--time_based --direct=1 --filename=/var/tmp/fio.tst > /root/fio.log 2>&1
# How much memory the database cache actually holds
free -m && ps -eo rss,comm --sort=-rss | head -n 10
If st stays above 5 and write await exceeds 10 ms, adding vCPUs will not help: you are competing for somebody else's resource. The full measurement method is in the guide to benchmarking a server with fio and sysbench.
When the money favours bare metal
A VPS is cheaper to start and dearer at scale: its price grows linearly with resources, while a physical node costs a flat rate. Dedicated Start DE at $49 per month gives 16 GB ECC and two SSDs in RAID1; Dedicated Pro DE at $99 gives 32 GB and two 1 TB NVMe drives. At 8 cores and 32 GB most providers charge a comparable amount for a virtual machine, but without an IOPS guarantee.
Count the total, not the plan line: an extra IPv4 is $5 per month, KVM/IPMI is $5, managed administration is $30, external storage backup is $10. The price structure is broken down in what makes up the cost of a dedicated server, and the configurations are listed on the dedicated servers page.
Moving for "headroom" without measuring usually does not pay off. The classic mistake: the project is limited by one single-threaded query or a missing index, and the team buys twice the cores. On bare metal the load profile is unchanged, the slow query report reads the same, and the invoice grows.
Check before ordering: enable the slow query log, capture iostat -x and vmstat at peak, and look at the steal time share. If steal is near zero while one of your own threads pins a core at 100%, the problem is in the code and hardware will not cure it.
What to pick for typical workloads
- A site, shop or corporate portal under 50 GB of data. VPS: load is spiky and idle cores are not worth paying for.
- A database with a hot set of 30 GB or more. Dedicated server: the cache has to sit in memory in full.
- Your own virtualisation or a lab VM cluster. Bare metal only: a nested hypervisor on someone else's host loses performance.
- Video processing, transcoding, CI builds. Bare metal: the load is flat and long, cores are needed constantly.
- A mail node. Note that on VDS outbound SMTP is closed by default and opened on request for verified customers.
Once the decision is made, migrating without long downtime is covered separately: moving a project from VPS to a dedicated server.
Key takeaways
- The load profile decides: spiky means VPS, flat and continuous means bare metal.
- Measure steal time and
awaitbefore ordering; without numbers an upgrade is a lottery. - Bare metal wins on cost from roughly 8 cores and 32 GB; ZevsHost starts at $49 per month.
- A dedicated server gives you ECC and private IOPS, but failure recovery becomes your job.