NVMe drives changed VPS hosting the moment providers started putting them in production racks. The difference between spinning rust and solid-state was big; the jump from SATA SSD to NVMe is smaller but still matters when you're running databases, handling file uploads, or compiling code on a remote machine.
Every provider now lists "NVMe storage" in their marketing copy. Not all NVMe setups perform the same. Oversubscription, controller firmware, RAID configuration, and hypervisor I/O scheduling all affect what you actually get. This article focuses on eight providers where I've seen consistent, measurable NVMe performance in support scenarios and where the disk subsystem doesn't become the bottleneck under typical workloads.
What makes NVMe faster than SATA SSD
NVMe talks directly to the PCIe bus instead of going through SATA or SAS controllers. That architectural change cuts latency and raises the I/O queue depth from 32 (SATA) to 64k per queue. Multiple queues run in parallel.
For a VPS, the practical result is higher random read/write IOPS and lower latency on small block operations. Databases benefit most—PostgreSQL, MySQL, MongoDB, Redis all do lots of small random reads. Sequential throughput also improves, helping with log writes, backups, and large file transfers, but the IOPS gap is where you feel the difference day to day.
How I/O benchmarks isolate disk performance
When you run fio or dd on a VPS, you're measuring the entire stack: hypervisor scheduler, storage network if it's network-attached, the physical drive, and any caching layers. A single-threaded CPU benchmark won't tell you much about disk speed, and a network test won't either.
Random 4k read/write IOPS at queue depth 1 and 32 show how the disk handles typical application patterns. Sequential 1M read/write throughput measures bulk transfer speed. Latency percentiles (p50, p95, p99) reveal whether the storage controller occasionally stalls under load.
In the tickets I've handled, slow disk I/O shows up as MySQL queries piling up in SHOW PROCESSLIST, PHP-FPM workers timing out, or backup scripts running for hours. CPU and RAM might be fine; the bottleneck is waiting for the disk to acknowledge writes.
Eight providers with consistently fast NVMe I/O
These providers deliver NVMe storage that performs close to the hardware spec under real workloads. I'm listing them in no particular order because your mileage will vary depending on datacenter location, time of day, and the specific host node you land on.
Vultr
Vultr's high-frequency compute instances use locally attached NVMe drives. Random read IOPS typically exceed 150k at queue depth 32, and write IOPS stay above 50k. Sequential reads push past 2 GB/s on larger instances.
The storage is not shared across a SAN, so you don't see the latency spikes that happen when a neighbor hammers a shared volume. Snapshots and backups run on separate infrastructure. Plans start small and scale up to dedicated CPU cores if you need guaranteed compute alongside the fast disk.
Linode (Akamai)
Linode moved to NVMe across their fleet a few years back. The block storage add-on is still network-attached, but the root disk on every instance is local NVMe. Random 4k reads hit 100k+ IOPS on most nodes, and writes stay in the 40-60k range.
Their storage network for backups is fast enough that weekly snapshots don't cause noticeable I/O stalls. If you're migrating from an older SATA-based VPS, the difference is obvious the first time you run apt upgrade or compile a large codebase.
DigitalOcean
DigitalOcean's premium Intel and AMD droplets include NVMe SSD storage. Random read performance clusters around 120k IOPS, writes around 45k. Sequential throughput exceeds 1.5 GB/s read and 800 MB/s write on the larger droplet sizes.
One thing to watch: their standard droplets may still use older SSD storage on some nodes. Check the specs page before you spin up an instance. The price difference between standard and premium is small enough that you should default to premium if disk speed matters.
Hetzner Cloud
Hetzner's German and Finnish datacenters run local NVMe on every cloud server. Random IOPS are slightly lower than the top-tier US providers—around 80-100k read, 30-40k write—but the price per GB of RAM and storage is much lower.
For database workloads that aren't latency-critical, Hetzner delivers solid performance at a fraction of the cost. Their network is fast within Europe, and they don't charge for traffic between instances in the same datacenter. Backups are cheap and stored on separate infrastructure.
Vultr Bare Metal
Vultr's bare metal servers give you the entire physical machine, including direct access to NVMe drives without a hypervisor in the middle. You'll see random read IOPS above 400k and write IOPS over 150k on a modern NVMe drive.
This option makes sense if you're running a high-traffic database or a workload that can't tolerate hypervisor I/O scheduling. The downside is you lose the flexibility of snapshots and quick resizes. You're managing the entire server, including RAID if you configure multiple drives.
OVHcloud
OVHcloud's Discover and Advance VPS lines include NVMe storage. Performance varies more than other providers on this list—I've seen nodes deliver 90k random read IOPS and others closer to 60k. Write IOPS usually land between 30-50k.
Pricing is aggressive, especially in their Canadian and European datacenters. If your workload can handle occasional I/O variance, OVH is a solid budget option. Monitor disk latency for the first week and open a ticket if performance is consistently below spec.
Contabo
Contabo upgraded to NVMe storage across their VPS product line. Random read IOPS typically hit 70-90k, writes 25-35k. Sequential throughput is respectable but not chart-topping—around 1 GB/s read, 500 MB/s write.
Their pricing is among the lowest for the amount of RAM and storage you get. The tradeoff is support response times can be slow, and you're expected to handle most troubleshooting yourself. For staging environments or non-critical workloads, the value is hard to beat.
AWS (io2 Block Express)
AWS EC2 instances with io2 Block Express volumes deliver the highest IOPS ceiling—up to 256k per volume with sub-millisecond latency. You pay for provisioned IOPS separately from storage capacity, so costs scale quickly.
This option is overkill for most VPS workloads, but if you're running a transactional database that needs guaranteed low-latency I/O under heavy load, io2 Block Express is the benchmark. GP3 volumes are a cheaper middle ground, offering up to 16k IOPS included in the base price.
Real-world I/O patterns vs synthetic benchmarks
Synthetic benchmarks run in controlled conditions with no other processes competing for I/O. Your actual workload will see lower numbers because the operating system, logs, monitoring agents, and your application all share the same disk.
Database servers generate lots of random 4k and 8k reads with occasional fsync writes. Web servers do more sequential writes (logs) and random reads (PHP opcache, static assets). Backup jobs hammer sequential writes. If your workload is write-heavy, pay attention to write IOPS and sustained write throughput, not just reads.
How oversubscription affects NVMe performance
Providers oversell physical resources because most VPS instances sit idle most of the time. NVMe drives have high enough IOPS headroom that moderate oversubscription doesn't cause problems. When a host node is packed with active instances all hitting the disk simultaneously, you'll see latency spikes and lower throughput.
Signs of oversubscription: inconsistent benchmark results across multiple runs, high p99 latency even when p50 looks fine, and slow I/O during peak hours that improves at night. If you consistently see this pattern, open a ticket and ask if the host node is overloaded. Some providers will migrate you to a less crowded node.
Testing I/O performance on your VPS
Install fio and run a standard test to baseline your disk:
sudo apt install fio
fio --name=random-read --ioengine=libaio --iodepth=32 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
That command runs four threads doing random 4k reads for 60 seconds. Check the IOPS output and compare it to the provider's advertised numbers. Run the same test with --rw=randwrite to measure write IOPS.
For sequential throughput:
fio --name=seq-read --ioengine=libaio --iodepth=32 --rw=read --bs=1M --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting
Run these tests on a fresh VPS before you put production workloads on it. If performance is significantly below spec, you have leverage to request a different node before you've migrated everything.
Does faster I/O justify higher VPS prices?
It depends on your bottleneck. If your site is slow because of unoptimized queries, bad caching, or single-threaded PHP code, faster disk won't help. Profile first.
Database-heavy applications—WordPress with thousands of posts, Magento, custom SaaS platforms—often become disk-bound as traffic grows. Upgrading from a SATA SSD VPS to NVMe can cut page load times by 20-40% when the database is the slowest component. For static sites or API servers that cache aggressively, the difference is negligible.
Run iostat -x 1 during peak traffic. If %util stays above 80% and await is high, you're I/O constrained. Faster storage will help. If CPU or RAM is maxed out instead, focus there first.
What to expect from NVMe on virtualized vs bare metal
Virtualization adds a layer between your instance and the physical NVMe drive. The hypervisor schedules I/O requests from multiple VMs, and you share the drive's total IOPS budget with neighbors.
On bare metal, you get the drive's full rated performance—300k+ read IOPS, 150k+ write IOPS on a modern NVMe SSD. Latency is lower because there's no hypervisor queue. The tradeoff is less flexibility: no snapshots, slower provisioning, and you're responsible for the entire server.
For most hosting workloads, virtualized NVMe delivers enough performance that bare metal isn't worth the operational overhead. Reserve bare metal for dedicated database servers or high-frequency trading apps where every microsecond of latency matters.
What to check before you commit
Before you move production workloads to a new NVMe VPS, run the fio tests above and save the results. Check latency under load with ioping. Monitor disk I/O with iostat for a few days to see if performance stays consistent during peak hours.
If numbers drop significantly after the first week, you may have landed on an oversold node. Open a ticket with your benchmark results and ask for a migration. Reputable providers will move you without pushback.
Price alone doesn't predict I/O performance. A budget provider with local NVMe can outperform a premium host using network-attached SSD storage. Test, measure, and keep records.
