TL;DR:商家页面写着一行「NVMe 加速」,不代表你拿到手的 VPS(虚拟专用服务器)真有 NVMe 级别的磁盘性能。这篇文章会用 fio 把 NVMe 与 SATA SSD 两种盘在 4K 随机读写 IOPS、顺序读写吞吐、延迟四个维度上跑一遍实测,帮你看懂数据怎么读、差距有多大,以及如何用同样的命令在 5 分钟内验证自己手上那台机器有没有被虚标。
为什么要专门测磁盘:CPU 快不等于 IO 快
在论坛里最常见的踩坑场景是这样的:装机时看 CPU 跑分和内存都很漂亮,网站一上线,数据库查询动辄几百毫秒,WordPress 后台点一下卡两秒。这种情况九成问题出在磁盘 IO 上。磁盘是整台 VPS(虚拟专用服务器)里最容易超售、也最难从参数页看穿的部分:同样是「SSD」三个字母,SATA 接口的盘和 NVMe(基于 PCIe 通道的固态盘协议)的盘,随机读写性能可以差出一个数量级。
差在哪?SATA 接口的物理带宽上限约 6Gbps,实际可用吞吐通常在 500MB/s 上下,而且协议路径长,延迟高;NVMe 走 PCIe 通道直连 CPU,队列深度从 SATA 的一条变成几千条,延迟可以压到 0.1 毫秒以内。对数据库这种 4K 小文件随机读写的负载来说,这个差距会被直接放大到页面响应速度上。如果你还不清楚影响机器速度的完整链路,可以先看这篇影响美国VPS服务器速度的核心因素与优化指南,把网络和磁盘两块短板分开排查。
测试环境与 fio 命令:先交代方法再谈数据
为了避免「跑分全靠吹」,先交代环境:同价位段(月付 5-10 美元档)各取一台 1 核 1G 内存的入门 VPS,一块标称 NVMe,一块标称 SATA SSD,都是常见的服务商库存机型;测试统一在系统盘上执行,文件大小 1G,测试前重启一次排除缓存干扰。使用 fio(Flexible I/O Tester,Linux 下最常用的磁盘压测工具)分别跑四组场景,每组 60 秒。
命令如下,拿去就能在自己机器上复现:
# 4K 随机读(IOPS 核心指标)
fio --name=randread --ioengine=libaio --rw=randread --bs=4k \
--numjobs=1 --iodepth=32 --direct=1 --size=1G --runtime=60 --group_reporting
# 4K 随机写
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k \
--numjobs=1 --iodepth=32 --direct=1 --size=1G --runtime=60 --group_reporting
# 顺序读(吞吐)
fio --name=seqread --ioengine=libaio --rw=read --bs=1m \
--numjobs=1 --iodepth=16 --direct=1 --size=1G --runtime=60 --group_reporting
# 顺序写(吞吐)
fio --name=seqwrite --ioengine=libaio --rw=write --bs=1m \
--numjobs=1 --iodepth=16 --direct=1 --size=1G --runtime=60 --group_reporting
参数里最关键的是 --direct=1,它绕过系统页缓存直接打盘,防止跑出来的数字是内存缓存的假象;--iodepth=32 模拟数据库这类并发请求场景,能测出队列深处真实的盘能力。注意在生产机上跑写测试会占满一段 IO,建议在低峰期执行,或者直接在购买前的测试机上跑。
四项指标实测结果:差距到底有多大
先看跑分数据。两台机器在相同参数下各跑四轮,取稳定段平均值:
| 指标 | NVMe VPS 实测 | SATA SSD VPS 实测 | 差距 |
|---|---|---|---|
| 4K 随机读 IOPS | 约 42000 | 约 6800 | 约 6 倍 |
| 4K 随机写 IOPS | 约 31000 | 约 5400 | 约 5.7 倍 |
| 顺序读吞吐 | 约 2400 MB/s | 约 480 MB/s | 约 5 倍 |
| 4K 随机写平均延迟 | 约 0.9 ms | 约 5.8 ms | 低约 6.4 倍 |
几个值得注意的读数方式:第一,随机读写 IOPS 才是 VPS 用户最该看的数字,因为建站、数据库、缓存全是 4K 小文件操作,顺序吞吐反而是次要的;第二,SATA 盘的顺序读写卡在 500MB/s 附近是接口带宽(网络或接口每秒能传输的数据量)的物理天花板,商家宣传页如果给 SATA 盘标了 2000MB/s 以上的数字,那一定是缓存跑分或者直接虚标;第三,延迟这栏对体验最敏感——数据库单条查询多消耗几毫秒,一个页面几十条查询叠加起来就是肉眼可见的卡顿。
顺带说一句,如果这些概念里哪个还比较陌生,比如带宽和延迟怎么影响访问体验,这篇虚拟主机 vs VPS 全维度对比里对性能、权限和成本的拆解可以补齐背景知识。

如何识别「假 NVMe」:三种常见虚标套路
实测多了你会发现,「标称 NVMe」和「真实 NVMe 性能」是两回事。在测试环境中见过三种典型套路:
一是「缓存盘冒充」。部分低价机型用消费级 NVMe 盘叠加厂商缓存,fio 前几秒数字漂亮,跑到 30 秒后 IOPS 断崖式下跌到几千,这就是缓存耗尽后露出的真实盘底子。识别方法是把 --runtime 拉长到 300 秒,或者用 --time_based 反复跑,看后半段曲线。
二是「共享 NVMe 超售」。母机上挂几十台 VPS 共用一块盘,单机空闲时能跑出几万 IOPS,晚高峰邻居一折腾,你的延迟直接翻十倍。识别方法是错峰各跑一轮 fio,两次结果差 3 倍以上就基本可以断定超售严重。选购时与其赌运气,不如参考中小企业如何选择合适的云服务器(云端弹性付费的虚拟机)?实用选型指南里把 IO 稳定性放进选型权重的思路,CPU 核心数以外的磁盘指标同样要纳入对比。选购前多看几篇同机型的实测贴,比单看商家页面可靠得多。
三是「旧款盘翻新标称」。PCIe 3.0 的老款 NVMe 和 PCIe 4.0 的新盘,标称都叫 NVMe,但 4K 随机写可能差一半以上。这个从参数页看不出来,只能靠实测——这也是为什么拿到机器第一件事就是跑一遍上面的四组命令。

不同场景怎么选:不是所有人都需要顶级 IO
说结论:磁盘性能要和负载匹配,别为用不到的 IOPS 多花钱。
跑 WordPress 博客、企业官网、静态站这类负载,请求数量少、以读为主,SATA SSD 的 5000+ IOPS 完全够用,4K 随机写延迟 6 毫秒用户也感知不到,这个场景里 NVMe 溢价属于浪费预算。数据库、Redis 缓存、高频交易的 API 服务则完全相反:这类负载 4K 随机读写密集,NVMe 和 SATA 之间 5-6 倍的 IOPS 差距会直接转化成查询响应时间,多花的几美元月费换来的性能提升非常值。视频转码、日志聚合、大数据批处理这类顺序吞吐型负载,重点看顺序读写那组数字,NVMe 的 2400MB/s 能把任务时间压缩到 SATA 方案的四分之一左右。
还有一个折中思路:如果预算紧张又需要跑数据库,可以选 NVMe 系统盘加定期冷备的组合,把热数据放快盘、把备份成本降下来。Hostease 的部分美国 VPS 方案默认配 NVMe 存储,对跑数据库的小型业务来说开箱即用,不需要自己折腾磁盘调优,这类「默认配齐」的方案在对比价格时应该把调优的人力成本也算进去。

总结与行动建议
总结一下:NVMe 与 SATA SSD 在 VPS 上的真实差距集中在 4K 随机读写 IOPS 和延迟上,实测大约 5-6 倍;顺序吞吐差距约 5 倍,但这个指标对多数建站用户优先级更低。宣传页的一个词说明不了任何问题,fio 四组命令 5 分钟就能让机器自己说话。
给你三条可以直接执行的建议:第一,拿到任何新 VPS,先跑一遍文中的四组 fio 命令,把 4K 随机读写 IOPS 和延迟记下来当基线,之后性能劣化可以随时对比;第二,测试时间拉长到 300 秒并错峰复测一次,能过滤掉缓存盘和超售这两种最常见的虚标;第三,选购新机器时不要只比 CPU 和内存价格,把磁盘 IO 稳定性放进决策权重——如果你需要现成的低风险选项,可以先从Hostease 专区了解默认 NVMe 配置的方案,再按本文方法实测验证,数据达标再续费长期套餐,这样预算和性能都稳。




