Every VPS provider now advertises “SSD” or “NVMe” storage, and the terms get used interchangeably. Both are flash memory; the real differences are the interface, the queue depth, and — most importantly — how the provider shares the underlying disks among tenants. This guide separates what actually matters for web and database workloads from what is marketing, and gives you a repeatable test to check storage performance on any VPS.
SATA SSD vs NVMe: the technical difference
A SATA SSD talks to the host over the AHCI interface designed for spinning disks, with a command queue 32 entries deep. NVMe uses the PCI Express bus directly, with queues up to 65,535 commands deep. That changes what each can do under parallel load: NVMe drives sustain far higher random I/O — hundreds of thousands of 4K IOPS on good hardware versus tens of thousands for SATA — with lower latency (tens of microseconds versus hundreds).
| Property | SATA SSD | NVMe |
|---|---|---|
| Interface | SATA / AHCI | PCIe / NVMe |
| Queue depth | 32 | Up to 65,535 |
| Typical 4K random read IOPS | 20k–100k | 100k–1M+ |
| Typical latency | 100–500 µs | 20–100 µs |
| Where you find it | Budget plans, older hosts | Current mainstream VPS plans |
Where NVMe actually changes your experience
- Databases: MySQL and PostgreSQL rely on small random reads; NVMe cuts query latency when data misses the buffer pool.
- Boot and cold starts: containers and applications start in seconds instead of tens of seconds when many small files must be read.
- Build servers and CI: thousands of small file operations per compile step add up quickly.
- Swap and memory pressure: when the kernel does swap, NVMe makes the pain much shorter.
- Log-heavy applications: append-heavy writes benefit from NVMe’s sustained write throughput.
Where it barely matters
The uncomfortable truth: for a typical small-to-medium website, most reads never reach the disk — they hit the page cache in RAM or a CDN/object cache. A 4K random read from NVMe takes roughly 50 microseconds; from page cache it takes about 100 nanoseconds — around 500 times faster. If your site is static-heavy, cache-friendly, or low-traffic, the difference between SATA SSD and NVMe will be invisible in user-facing metrics. The same applies when the bottleneck is elsewhere: a single-threaded PHP app, an unoptimized query, or a 50 ms TLS handshake dwarfs storage differences.
There is another reason storage type matters less than the marketing suggests: the operating system itself. Linux uses free RAM for the page cache aggressively, and most current VPS plans ship with 2–8 GB of RAM. A WordPress site with a 1 GB working set, an Nginx static cache, and an object cache for database queries can run for days with almost no disk reads at all. Keep this in mind when you benchmark: your benchmark bypasses the cache on purpose, so its results represent the worst case, not the average request your users experience.
Shared storage reality: what the spec sheet doesn’t say
- Noisy neighbors: your “NVMe” is usually a slice of a larger NVMe array shared with other tenants. Many providers allow short bursts to full speed and then throttle — check the fine print for sustained IOPS or throughput caps.
- RAID/HA overhead: replication (RAID-10, erasure coding) multiplies write amplification. A fast disk can feel slow on small random writes when every write is mirrored.
- Thin provisioning: if the provider over-allocates capacity, your IOPS drop when neighbors actually use their quota. This is why the same plan can feel different on two hosts.
- Backup and snapshot I/O: backups sharing the same disk pool add background load. Providers that isolate backup traffic are worth preferring.
How to test storage on a VPS
- Random read IOPS:
sudo fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=512M --numjobs=4 --iodepth=32 --runtime=60 --group_reporting - Random write IOPS: the same command with
--rw=randwrite(use a scratch directory; this consumes disk space). - Latency:
sudo ioping -c 100 /var/lib— look at the average and max; consistent sub-millisecond results are good. - Run each test three times at different hours and record the spread. Variance between runs is itself a signal of shared-disk contention.
Interpretation: 4K random read IOPS in the tens of thousands with stable latency means a healthy NVMe slice. If the same benchmark drops 50% between runs or latency spikes into tens of milliseconds, the disk pool is contended.
What to look for when comparing plans
- Storage type per plan — NVMe vs SATA SSD is usually stated; if a budget provider is vague, ask.
- Guaranteed or sustained IOPS, not just peak burst numbers.
- Whether the OS disk shares a pool with backups — separate is better.
- RAM size — more RAM means fewer disk reads. A 4 GB RAM plan with SATA SSD often beats a 1 GB NVMe plan for the same site.
Buy storage performance for the workloads that actually hit the disk — databases, builds, heavy logging — and buy RAM for everything else. When you shortlist providers, compare providers on our comparison table, then see the full specs and pricing for storage type and sustained IOPS, and run the fio test above on a trial instance before committing. If a provider will not let you benchmark before paying, that is itself an answer.




Leave a Reply
You must be logged in to post a comment.