Choosing a VPS provider comes down to performance under real workloads. Marketing promises are cheap; actual boot times, network latency, and disk throughput tell you what you'll get when traffic spikes or a database query runs long.
I deployed identical test stacks across nine providers—DigitalOcean, Linode (Akamai), Vultr, Hetzner, OVHcloud, Contabo, UpCloud, AWS Lightsail, and Kamatera—and ran the same battery of tests on each. Same OS image, same region where possible, same time of day. The goal: strip away the sales copy and see which platforms hold up when you need them to.
The test methodology
Each provider got a standard 2 vCPU, 4 GB RAM instance running Ubuntu 22.04 LTS. I picked mid-tier plans because that's where most production apps live—not the budget boxes that oversell, not the high-memory monsters that cost more than a car payment.
Tests ran during peak hours (14:00–18:00 UTC) to catch congestion if it existed. Every benchmark repeated five times; I threw out the highest and lowest results and averaged the middle three. That smooths out the noise from a neighbor's cron job or a transient network hiccup.
Boot time measurement
Boot time matters when you're scaling horizontally or recovering from a crash. I measured from API provision request to the moment SSH accepted a key—the point where you can actually start configuring the machine. Not just "instance running" according to the panel, but truly ready.
Some providers provision in under 30 seconds. Others take two minutes or more, and in an outage scenario, every second counts.
Network latency and throughput
I tested inter-region latency using ping and mtr to three external targets: a major CDN edge, a transatlantic hop, and an Asia-Pacific endpoint. That gives you a sense of how the provider's backbone routes traffic, not just the numbers they print on a spec sheet.
For throughput, I ran iperf3 against a known fast endpoint and measured sustained transfer rates over 60 seconds. Bursts are easy; sustained gigabit speeds require real capacity.
Disk IO benchmarks
Databases live and die on disk speed. I used fio with a 4k random read/write pattern at queue depth 32—typical for a busy MySQL or PostgreSQL instance under load. Then a sequential 1M block test to mimic log writes and backups.
# Random 4k read/write, simulating database load
fio --name=randrw --ioengine=libaio --iodepth=32 --rw=randrw \
--bs=4k --direct=1 --size=2G --numjobs=4 --runtime=60 \
--group_reporting
# Sequential 1M blocks for bulk transfers
fio --name=seqwrite --ioengine=libaio --iodepth=16 --rw=write \
--bs=1M --direct=1 --size=4G --numjobs=1 --runtime=60
NVMe storage should hit thousands of IOPS on random 4k. Anything under 1,000 IOPS tells you the disk subsystem is shared too aggressively or bottlenecked somewhere upstream.
Provider performance breakdown
DigitalOcean
Boot time sat around 45 seconds consistently. Network latency to US and EU endpoints was low—single-digit milliseconds within region, under 90ms transatlantic. Disk IO on their NVMe-backed droplets hit 8,000+ IOPS on random 4k reads, which is solid for a shared environment.
The control panel is fast, the API is reliable, and DNS propagation through their nameservers happens quickly. If you're running a web app or API service, you won't feel bottlenecked here.
Linode (Akamai)
Post-acquisition, Linode's performance stayed consistent. Boot times hovered near 40 seconds. Network felt snappier than I expected, probably benefiting from Akamai's backbone. Disk IO clocked in around 7,500 IOPS, which is competitive.
One advantage: their block storage pricing is straightforward, and you can snapshot without downtime. That matters when you're doing maintenance.
Vultr
Vultr booted fast—35 seconds on average—and their global network performed well in latency tests. Disk IO on their high-frequency plans hit 9,000 IOPS, among the highest I recorded. The standard plans were closer to 5,000, so tier choice matters here.
Their bandwidth allotment is generous. If you're pushing a lot of traffic or running a CDN origin, that's a real cost saver.
Hetzner
Hetzner came in with the best price-to-performance ratio I tested. Boot time was around 50 seconds—not the fastest, but acceptable. Disk IO consistently topped 10,000 IOPS on random 4k, and sequential writes were blazing fast.
Network latency within Europe is excellent. Cross-Atlantic and Asia-Pacific routes were slower, which makes sense given their infrastructure footprint. If your users are in the EU, this is a strong pick.
OVHcloud
OVH's boot times were slower—often 90 seconds or more. That's the biggest weakness. Once running, disk IO was respectable at around 6,000 IOPS, and network throughput held steady under load.
Their panel UI feels dated, but the underlying hardware is sound. Pricing is aggressive, especially on their older VPS lines, but expect a learning curve if you're used to more polished dashboards.
Contabo
Contabo offers absurd specs for the price—8 vCPU and 16 GB RAM for less than competitors charge for half that. The catch: performance is inconsistent. Boot times varied wildly from 50 seconds to over two minutes depending on the host node.
Disk IO ranged from 3,000 IOPS to 7,000 on successive runs, which tells you the underlying storage is heavily shared. Network latency was fine, but throughput dipped during peak hours. You get what you pay for, and here you're paying for raw capacity, not guaranteed speed.
UpCloud
UpCloud's MaxIOPS architecture delivered the fastest boot I recorded: 28 seconds. Disk IO consistently hit 12,000+ IOPS on random 4k reads, and sequential writes were equally impressive. Network latency matched the top-tier providers.
The downside is cost. Their pricing sits above most competitors, though they justify it with performance SLAs and better support response times. If uptime and speed are non-negotiable, the premium is defensible.
AWS Lightsail
Lightsail is AWS's simplified VPS offering. Boot times were around 55 seconds, and disk IO came in at 5,000 IOPS—adequate but not exceptional. Network latency benefited from AWS's global backbone, especially if you're connecting to other AWS services.
The big win here is integration. If you're already using Route 53, S3, or RDS, spinning up a Lightsail instance and connecting it is frictionless. The cost is predictable, which is rare in the AWS ecosystem.
Kamatera
Kamatera's performance was middle-of-the-road. Boot times averaged 60 seconds, disk IO hovered around 6,500 IOPS, and network felt stable but unremarkable. Their flexibility is the draw—you can customize CPU, RAM, and storage independently, which most providers don't allow.
If you need an odd configuration, Kamatera accommodates that. For standard workloads, other providers deliver better bang for the buck.
What the benchmarks reveal
Pure speed isn't everything, but it's a strong signal of how a provider manages resources. Fast boot times mean efficient provisioning pipelines and less hypervisor overhead. Low latency indicates good peering and backbone investments. High disk IOPS prove the storage layer isn't oversold.
The variance between runs matters too. A provider that swings from 4,000 IOPS to 10,000 on the same node tells you they're struggling with noisy neighbors or capacity planning. Consistency beats occasional peaks.
Price vs. performance
Hetzner and Vultr delivered the best value. You get near-top-tier performance at mid-market pricing, and both scale gracefully when you need more capacity. UpCloud was the fastest overall, but you'll pay 40–50% more for that edge.
Contabo is tempting if you need massive specs on a budget, but the performance inconsistency makes it risky for production. Fine for dev environments or batch jobs that tolerate latency spikes.
How to run your own benchmarks
Don't take my numbers as gospel for your workload. Spin up a trial instance and test what matters to you. A database-heavy app cares about disk IO; a real-time API cares about network latency; a CI/CD runner cares about CPU burst capacity.
Install sysbench, fio, iperf3, and mtr. Run the same tests at different times of day. Check how the provider handles sustained load, not just the first 60 seconds when caches are warm and neighbors are idle.
Document your results. When you're comparing three providers, spreadsheets matter more than gut feel.
Pick based on your workload
If you're running a web app with a database, prioritize disk IO and boot time. Hetzner, UpCloud, and Vultr top that list. If you're serving APIs with global traffic, network latency and throughput matter more—DigitalOcean, Linode, and AWS Lightsail shine there.
For dev and staging environments, Contabo's pricing makes sense despite the performance variance. Just don't put production traffic on it unless you've tested under load and accepted the tradeoffs.
Benchmarks give you a starting point. Your mileage will vary based on region, plan tier, and timing. Test before you commit, monitor after you deploy, and keep options open.
