Skip to content
Back to Blog
Performance11 min read

NVMe VPS Hosting: 7 Providers Benchmarked [2026]

Real-world IOPS and database query benchmarks on seven NVMe VPS providers to show which deliver genuine NVMe performance and which throttle under load.

Written by Abdul AbrorTechnical Hosting Support Engineer
NVMe VPS Hosting: 7 Providers Benchmarked [2026]
On this page

Not every VPS labeled "NVMe" delivers NVMe speed. Marketing materials promise blazing IOPS, but under real load some providers throttle to SATA speeds or share a single drive across dozens of containers. If you run a database-heavy app or handle concurrent requests, those differences show up immediately in query latency and page load times.

I benchmarked seven providers advertising NVMe storage in 2026, focusing on random read/write IOPS and MySQL query performance under concurrent load. The test environment was consistent: same instance size bracket (4 vCPU, 8 GB RAM), same OS image, same test workloads. No provider knew they were being tested.

Why NVMe matters for VPS workloads

NVMe uses PCIe lanes instead of the SATA bus, which removes the bottleneck between storage and CPU. Sequential throughput rarely matters for web apps—random I/O does. A WordPress site with object caching disabled, a Laravel app with database sessions, or any MySQL-backed service will hammer storage with small random reads and writes. SATA SSDs plateau around 10,000-15,000 IOPS; real NVMe can deliver 100,000+ IOPS on the same operations.

But virtualization adds overhead. A hypervisor can stripe a single NVMe drive across many VPS instances, share queue depth, or apply I/O throttles to prevent noisy neighbors. Your "NVMe VPS" might be using NVMe at the hardware layer but delivering SATA-class performance to the guest because of these constraints.

Test methodology and workload

Each provider was tested with a fresh Ubuntu 22.04 instance. I used fio for raw IOPS measurement and sysbench for MySQL query throughput. The fio test ran 4K random read/write with a queue depth of 32 for 60 seconds after a 30-second warmup. The sysbench workload was oltp_read_write with 16 threads, 10 million rows, and a 5-minute run.

All instances were provisioned in US regions during off-peak hours to minimize external network variance. I repeated each benchmark three times and took the median result. The goal was to see how storage performs under typical concurrent load, not to stress-test edge cases.

What the benchmarks measure

Random read IOPS shows how fast the VPS can retrieve scattered small blocks—think cache misses, index lookups, session reads. Random write IOPS matters for logging, user-generated content, and transactional databases. MySQL query throughput combines CPU, RAM, and storage to show real-world application performance when all three are in play.

A provider with excellent fio numbers but poor database throughput usually signals CPU throttling or memory bandwidth limits. One with good database scores but mediocre IOPS is over-provisioning CPU to mask storage bottlenecks.

Provider 1: High IOPS, consistent latency

This provider delivered sustained random read IOPS above 80,000 and write IOPS around 60,000 across all three test runs. Latency stayed below 1 ms for reads and 2 ms for writes even at full queue depth. The MySQL benchmark hit just over 3,000 queries per second with 16 concurrent threads.

Instance provisioning was fast (under 90 seconds), and the control panel exposed I/O metrics in real time. No noticeable throttling during extended runs. The network throughput matched the advertised gigabit uplink without variance spikes.

The catch: pricing sits at the higher end for this instance class, and the provider doesn't offer hourly billing. You commit to monthly cycles.

Provider 2: Good peak performance, occasional dips

Peak IOPS hit 70,000 for reads and 50,000 for writes, but one of the three runs dropped to 40,000 read IOPS midway through the test. Write performance stayed consistent. MySQL queries per second averaged 2,700, which is solid but not exceptional.

The dip pattern suggests either background I/O from the host (backups, snapshots) or shared resource contention. If you can tolerate occasional slowdowns during what might be the provider's maintenance window, this is still usable performance. For latency-sensitive workloads, the variance is a risk.

Support responded within two hours when I asked about the dip. They confirmed snapshot schedules can affect guest I/O but offered to disable auto-snapshots for production instances.

Provider 3: Marketing says NVMe, benchmarks say otherwise

Random read IOPS maxed out at 12,000 and writes at 8,000. MySQL queries per second barely reached 1,500 with the same 16-thread workload. Latency spiked above 10 ms during the fio write test. These numbers are typical of SATA SSDs, not NVMe.

I checked the block device with lsblk and smartctl—the guest sees a virtio-blk device, so the underlying hardware is abstracted. The provider's dashboard claims "NVMe storage" but doesn't specify whether the hypervisor layer throttles I/O or how many tenants share the physical drive.

For static sites or low-traffic applications this might be fine. But if your workload depends on fast random I/O, avoid this one despite the NVMe label.

Provider 4: Balanced performance, transparent limits

This provider documents I/O limits clearly: 40,000 IOPS baseline with burst up to 80,000 for short periods. The benchmarks matched those numbers. Random reads stayed around 40,000 IOPS sustained, with brief bursts to 75,000. Writes hovered near 35,000 IOPS.

MySQL query throughput was 2,500 per second, and latency remained predictable. No surprise dips across the three test runs. The transparency matters—knowing the throttle ceiling helps you plan capacity and avoid surprises during traffic spikes.

They also expose per-instance I/O graphs in the dashboard, updated every 60 seconds. You can see burst credits accumulate and drain, which is useful for tuning workloads that spike intermittently.

Provider 5: High variance, unclear cause

First test run: 85,000 read IOPS, 65,000 write IOPS. Second run: 30,000 read, 25,000 write. Third run: back up to 75,000 read, 55,000 write. The MySQL benchmark followed the same pattern—3,200 queries per second, then 1,800, then 3,000.

I opened a support ticket with the raw data. They suggested reprovisioning the instance in a different availability zone, which I did. The new instance showed the same variance. My guess is either aggressive oversubscription on certain hypervisor nodes or dynamic throttling based on cluster-wide load.

If your app can handle unpredictable performance swings, the peak numbers are excellent. For anything customer-facing with SLA requirements, this inconsistency is a dealbreaker.

Provider 6: Budget tier, budget performance

Read IOPS capped at 25,000 and writes at 18,000. MySQL queries per second reached 1,900. Latency was acceptable (3-5 ms for reads) but throughput is limited. The provider targets cost-conscious customers and prices this tier 40% below competitors.

For dev environments, CI runners, or staging servers that don't need production-grade I/O, this is a reasonable trade-off. But calling it "NVMe performance" oversells what you actually get. It's better than spinning rust, worse than true NVMe.

The upside: hourly billing with per-second granularity, so you can spin up instances for tests and shut them down without waste.

Provider 7: Best database performance, moderate raw IOPS

Raw fio numbers were middling—50,000 read IOPS, 40,000 write IOPS. But the MySQL benchmark hit 3,400 queries per second, the highest of the seven providers. Latency under database load stayed below 2 ms for reads.

This suggests they optimize the storage stack for database workloads specifically: possibly tuned I/O schedulers, dedicated CPU pinning for database threads, or lower hypervisor overhead. If your primary use case is MySQL, PostgreSQL, or another transactional database, this provider delivers where it counts.

Their dashboard includes query-level performance insights (slow query logs, execution time histograms) baked into the control panel, which is handy for troubleshooting without SSH.

What actually matters for your workload

High IOPS numbers look impressive in marketing materials, but your application cares about latency under load and sustained throughput during real usage patterns. A provider with 100,000 peak IOPS that throttles after two minutes is worse than one with 40,000 IOPS sustained all day.

Before choosing, profile your own workload. Run iostat -x 1 on your current server during peak traffic and note the read/write patterns, queue depth, and await times. Match those patterns to the provider's documented (or tested) limits.

If you can't test beforehand, pick a provider with transparent I/O policies and start small. Scale up once you confirm the performance fits.

How to verify NVMe claims yourself

After provisioning, SSH in and run these checks:

lsblk -d -o NAME,ROTA

A rotational value of 0 means SSD or NVMe (non-spinning). Then:

sudo smartctl -a /dev/sda

Look for the transport protocol. NVMe drives will report nvme as the protocol; SATA SSDs report SATA. Keep in mind that paravirtualized block devices (virtio-blk, Xen blkfront) abstract the hardware, so smartctl might not return useful data. In that case, run a quick fio benchmark:

sudo fio --name=randread --ioengine=libaio --iodepth=32 --rw=randread \
  --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=30 --group_reporting

If IOPS stay below 15,000, you're not seeing NVMe-class performance regardless of marketing claims.

Pricing and value comparison

The highest-performing provider charged about 30% more than the mid-tier options for equivalent vCPU and RAM. The budget provider was cheapest but delivered proportionally lower IOPS. In support tickets I've handled, clients who chose the cheapest NVMe VPS often migrated within three months once database slowdowns became visible in production.

Price per IOPS isn't the only metric—factor in support responsiveness, backup policies, and network quality. A provider with great storage but slow support or frequent network blips will cost you more in operational overhead than the monthly savings.

If your workload is database-heavy, paying 20-30% more for a provider with proven query throughput and low latency variance is usually worth it. For static content, caching layers, or workloads with infrequent disk access, mid-tier performance is fine.

What to check before committing

Read the provider's acceptable use policy for I/O limits. Some explicitly cap IOPS or throttle sustained high I/O as "abusive." Others charge overages if you exceed baseline allocations. Knowing the rules prevents surprise throttling or bill shock.

Check whether snapshots or backups pause I/O or run inline. Inline backups can cause temporary latency spikes during the backup window. Ask support for the backup schedule if it's not documented.

Test failover or live migration policies if your provider offers high availability. Some HA setups use synchronous replication, which doubles write latency. Others pause the instance briefly during migration. Understand the trade-offs before relying on those features in production.

Does NVMe matter for a WordPress site?

If you use persistent object caching (Redis, Memcached) and a CDN for static assets, database I/O becomes the bottleneck. NVMe helps with uncached queries, plugin operations that write to disk, and media library operations. A heavily customized WooCommerce site with thousands of SKUs sees bigger gains than a simple blog.

Can I trust provider-published benchmarks?

No. Providers benchmark under ideal conditions: empty hypervisor, no noisy neighbors, peak hardware. Real-world performance depends on oversubscription ratios, time of day, and luck. Always test yourself or find independent third-party benchmarks.

How much IOPS does a typical web app need?

A small Laravel or Django app with a few hundred concurrent users might use 2,000-5,000 IOPS during traffic spikes. A busy e-commerce site or SaaS product can push 20,000+ IOPS. Monitor your current workload with iostat or your provider's dashboard to establish a baseline.

Should I pay extra for dedicated NVMe?

Dedicated NVMe (a physical drive allocated only to your VPS) eliminates noisy neighbor risk but costs significantly more. It makes sense for high-transaction databases or latency-critical applications. For most web hosting workloads, well-managed shared NVMe with documented IOPS limits is sufficient.

Choosing the right NVMe VPS for your workload

Match the provider's documented or tested IOPS limits to your application's actual I/O patterns. A workload that writes constantly needs sustained write IOPS, not burst. A read-heavy database benefits from low read latency and high queue depth handling.

Test before committing to annual contracts. Spin up a month-to-month instance, deploy your app, and measure performance under realistic load. Check I/O metrics during your peak traffic hours, not during idle periods.

The provider with the highest benchmark numbers isn't always the best fit. Consistent performance, transparent throttling policies, and responsive support matter more than peak IOPS in a ideal test environment.