Budget VPS: A Pre-Purchase Testing Checklist for CPU, I/O, and Network

Cheap VPS plans are where hosting providers cut corners: oversold CPUs, throttled disk I/O, and capped bandwidth. The good news is that most providers offer a trial period or a short money-back window, and you can run a targeted test suite in about twenty minutes to see exactly what you are buying. This checklist covers what cheap plans quietly cut, the commands to test each component, and the numbers that separate a bargain from a trap.

What Cheap Plans Quietly Cut

  • CPU oversubscription — your “dedicated” vCPU is shared across many neighbors; you feel it as CPU steal and inconsistent benchmarks.
  • Disk throttling — burstable I/O that looks fast for 10 minutes, then drops to a fraction of the advertised speed.
  • Network caps — fine for a few Mbps of sustained traffic, painful for backups and media.
  • Memory swaps — RAM is rarely the bottleneck on budget plans; slow swap on the host is.
What you testWhat it reveals
CPU benchmark, repeatedOversubscription and CPU steal
Disk random I/O over timeThrottling and burst limits
Network throughput to your regionReal usable bandwidth
Latency and packet lossRouting quality and peering

The 20-Minute Test Suite

Install the tools and run each test twice — once right after provisioning and once a few hours later, ideally during peak hours in the provider’s timezone:

apt install -y sysbench fio iperf3
sysbench cpu run --threads=1 --time=30
sysbench cpu run --threads=$(nproc) --time=30
fio --name=randread --rw=randread --bs=4k --size=1G --iodepth=32 --runtime=30 --time_based
fio --name=seqwrite --rw=write --bs=64k --size=1G --runtime=30 --time_based
iperf3 -c  -t 30
ping -c 20 

Watch CPU Steal, Not Just Core Count

A “4-core” plan on an oversold host can perform worse than a 2-core plan on a quiet one. The number that exposes this is CPU steal — the percentage of time the hypervisor gives your vCPU to other tenants. Run top and look at the %st column while you repeat the sysbench test:

top -bn1 | grep '%Cpu'
# st (steal) should stay under 2-3% during the benchmark

Re-run the single-threaded sysbench test five times over the day. If the events-per-second figure swings by more than 20%, the host is contended and your production traffic will feel it at peak hours. This is exactly why the cheap plans that look identical on paper benchmark so differently in practice.

Network: Test to Your Users, Not to the Provider

Speed tests against the provider’s own servers are meaningless — everything inside their network is fast. Point iperf3 at a server in the region your visitors actually come from, and use mtr to check the route:

mtr -rwbc 20 
iperf3 -c  -t 30 -R

High latency or packet loss at an intermediate hop (not the last one) points to cheap transit or poor peering. If your users are in the US and the test server is in Europe, expect the geography to show up in the numbers — test to the region that matters for your site, not for the provider’s marketing page.

Read the Fine Print on I/O Bursts

Many budget providers advertise disk speed based on burst capability: the plan can hit 500 MB/s for a few seconds, then drops to a sustained limit of 20 MB/s. Your fio test above measures the sustained number only if you run it long enough. Extend the random-read test to 60 seconds and watch the throughput curve — if it starts high and collapses, you are on a burst-limited disk:

fio --name=burst --rw=randread --bs=4k --size=2G --iodepth=32 --runtime=60 --time_based --output-format=json | python3 -c "import json,sys; d=json.load(sys.stdin); print('avg IOPS:', d['jobs'][0]['read']['iops_mean'])"

For a database or any write-heavy workload, the sustained number is the one that keeps your site alive at 6 PM, not the burst number from the marketing page. If the provider does not publish sustained I/O limits, the 60-second fio run is your answer.

What Good Looks Like

MetricGoodWarning sign
CPU steal (top %st)Under 2%Consistently above 5–10%
4K random read IOPS2,000+ (SSD/NVMe)Under 500, or dropping after 10 min
Sequential write100+ MB/sUnder 30 MB/s
Same-region pingUnder 20 msOver 50 ms with packet loss
Throughput vs. advertised80%+ of plan specUnder half the advertised rate

Red Flags That Should Make You Walk Away

  • CPU model in lscpu does not match what the provider advertises.
  • Benchmark results vary wildly between runs — a sign of aggressive oversubscription.
  • fio throughput collapses during business hours in the provider’s region.
  • No trial period, no money-back guarantee, and support only via tickets with a 48-hour SLA.
  • Renewal price that jumps sharply after the first term.

Test Before You Pay, Monitor After

Use the trial period to log CPU steal and latency over 48 hours rather than judging from a single run:

while true; do top -bn1 | grep '%Cpu' >> /tmp/steal.log; sleep 60; done

If the numbers hold up over two days, the plan is probably fine. If steal climbs during peak hours, move on — the next provider is a trial away. A budget VPS that passes these tests will serve a small site happily, and knowing what cloud VPS plans guarantee before you sign up makes the whole process much less risky.

Leave a Reply