How to Benchmark a VPS Before You Buy: A 20-Minute Test Suite

Choosing a VPS plan based on specs alone is a gamble. The same “2 vCPU, 4 GB RAM, 80 GB SSD” configuration can perform wildly differently across providers due to CPU model, resource contention, storage architecture, and network throttling. Running a standardized benchmark suite on a trial or money-back VPS before committing to a long-term plan gives you real data to compare. This 20-minute test suite covers CPU, memory, disk I/O, and network performance.

Before You Start: Provisioning a Test VPS

Most VPS providers offer a 7-day money-back guarantee or a trial period. Use this window to run benchmarks. Choose the plan you are considering, deploy a fresh Ubuntu 22.04 or 24.04 LTS image, and SSH in. Do not install any additional software beyond what is needed for the benchmarks — you want to measure the raw performance of the VPS, not your application stack.

For a look at different VPS plan options, visit virtualserversvps.com to compare features across providers.

Step 1: CPU Benchmark with sysbench

Sysbench is a lightweight, widely available benchmarking tool. Install it and run the CPU test:

# Install sysbench
sudo apt update && sudo apt install sysbench -y

# CPU benchmark (prime number calculation)
sysbench cpu --cpu-max-prime=20000 run

The result is a single metric: total time in seconds. Lower is better. A typical dedicated vCPU scores 10-15 seconds on this test. A shared/burstable vCPU may score 30-60 seconds, especially during peak hours. Run the test three times at different times of day to detect resource contention.

CPU TypeTypical Score (seconds)Notes
Dedicated vCPU (AMD EPYC / Intel Xeon)10-15Best for consistent workloads
Shared vCPU (Intel Xeon)20-35Varies with neighbor activity
Burstable (t3-like, credits)15-60Degrades as credits deplete
ARM / Graviton12-18Efficient but variable

Step 2: Memory Benchmark with sysbench

Memory bandwidth and latency affect everything from database queries to PHP execution. Test both read and write performance:

# Memory read test
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=read run

# Memory write test
sysbench memory --memory-block-size=1M --memory-total-size=10G --memory-oper=write run

The output shows throughput in MiB/sec. Look for:

  • Read throughput: Should be above 5,000 MiB/sec for DDR4/DDR5
  • Write throughput: Usually 30-50% lower than read
  • Variance: If scores vary more than 20% between runs, the VPS may be oversubscribed

Step 3: Disk I/O Benchmark with fio

Disk performance is the most common bottleneck on a VPS. Fio is the gold standard for I/O benchmarking:

# Install fio
sudo apt install fio -y

# Sequential read (large files)
fio --name=seqread --ioengine=libaio --direct=1 --bs=1M --size=1G --numjobs=1 --rw=read --group_reporting

# Random 4K IOPS (small files, database-like)
fio --name=randwrite --ioengine=libaio --direct=1 --bs=4k --size=1G --numjobs=4 --rw=randwrite --group_reporting

# Mixed read/write (typical web server load)
fio --name=rwmix --ioengine=libaio --direct=1 --bs=64k --size=1G --numjobs=2 --rw=rw --rwmixread=70 --group_reporting

Key metrics to record:

TestMetricGoodWarning
Sequential readBW (MB/s)> 300 MB/s< 100 MB/s
Random 4K writeIOPS> 5,000< 1,000
Mixed 70/30Latency (usec)< 5,000 us> 20,000 us

NVMe-backed VPS instances should easily exceed these thresholds. If you see sequential read speeds below 100 MB/s, the provider is likely using shared HDD-backed storage or has aggressive I/O throttling.

Step 4: Network Benchmark with iperf3

Network throughput matters for content delivery, backups, and database replication. Use iperf3 to test:

# Install iperf3
sudo apt install iperf3 -y

# Test against a public iperf3 server
iperf3 -c iperf.he.net -t 30

# Test to a specific region (choose a server near your target audience)
iperf3 -c iperf.worldstream.nl -t 30

Record both throughput (Mbps) and retransmits. High retransmit counts indicate network congestion or poor peering. For a web server, aim for at least 100 Mbps sustained throughput. For media streaming or file hosting, 500 Mbps or more is desirable.

Step 5: All-in-One Benchmarks

If you want a single script that covers CPU, memory, and disk, use the Geekbench CLI or the popular yabs.sh script (Yet Another Benchmark Script):

# YABS - comprehensive benchmark
curl -sL yabs.sh | bash

# Geekbench 6 (requires download)
wget https://cdn.geekbench.com/Geekbench-6.3.0-Linux.tar.gz
tar xzf Geekbench-6.3.0-Linux.tar.gz
cd Geekbench-6.3.0-Linux
./geekbench6

YABS runs CPU multi-threaded and single-threaded tests, fio disk tests, and iperf3 network tests, then outputs a summary. It is the quickest way to get a complete picture in one command.

Interpreting Results: What to Look For

Numbers alone are not useful without context. Here is how to interpret your benchmark results:

  • Compare against your workload: A VPS with excellent CPU but poor disk I/O may be fine for a compute job but terrible for a database.
  • Run at different times: Run the suite at 9 AM, 2 PM, and 10 PM. If scores drop significantly during business hours, the provider is oversubscribing resources.
  • Check for burst credits: Some providers advertise “up to” performance that degrades after a burst period. Run the disk test for 5+ minutes to see if performance drops.
  • Look at latency, not just throughput: A low-latency 4K random write is more important for databases than sequential read speed.

Benchmark Log Template

Provider: [Name]
Plan: [Name]
Date: [YYYY-MM-DD]

CPU: [Model from /proc/cpuinfo]
RAM: [GB]
Storage: [Type, Size]

--- CPU ---
sysbench prime 20000: [X.X]s

--- Memory ---
Read: [XXXX] MiB/sec
Write: [XXXX] MiB/sec

--- Disk ---
Seq Read: [XXX] MB/s
Random 4K Write: [XXXX] IOPS
Mixed Latency: [XXXX] us

--- Network ---
iperf3: [XXX] Mbps, [X] retransmits

--- Verdict ---
[Good / Marginal / Poor]

Save this template and fill it out for each VPS you test. Over time, you will build a reference dataset that makes choosing the right provider easy. For more tips on selecting the right VPS, browse our VPS guides and tutorials.

Conclusion

A 20-minute benchmark suite is the difference between buying a VPS based on marketing specs and buying one based on real performance. Run sysbench for CPU and memory, fio for disk I/O, and iperf3 for network throughput. Test at multiple times, record your results, and compare across providers. The time invested upfront pays for itself every time your application runs smoothly.

Leave a Reply