测准硬盘真实速度:fio 开源压测,Linux 下存储性能说了算

厂商标称的顺序读写速度和你在真实负载下的体感常常两码事。fio 是 Linux 上最被信赖的存储基准测试工具,用一条命令就能模拟随机读、随机写、混合负载等各种真实场景,精确测出 IOPS、延迟和带宽。数据库选型、RAID 调优、云盘对比,行家几乎都用它说话。
它解决什么问题
凭厂商宣传的速度选盘,实际数据库延迟却高得离谱。
分不清顺序和随机读写,拿错指标做容量规划。
云服务器性能参差,没有客观办法横向比一比。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| 场景模拟 | 可设定随机或顺序、读或写、队列深度等真实负载 |
| 指标全面 | 输出 IOPS、带宽、平均与百分位延迟,够专业 |
| 多引擎 | 支持同步、异步、内存映射等多种 IO 引擎 |
| 脚本化 | 配置可写成任务文件,方便重复与批量对比 |
| 跨设备 | 能对裸盘、文件、块设备统一测试 |
| 开源免费 | GPL-2.0 授权,长期被社区与生产环境验证 |

它把“磁盘在某种写法下到底多快”变成可复现的数字,而不是拍脑袋
真实业务的瓶颈往往不在顺序大文件拷贝,而在大量小随机读写和并发队列里。fio 的价值是让你精确构造这些场景:比如设定四线程、队列深度三十二的随机读,跑够时间后给出 IOPS 与尾延迟分布。不同配置、不同介质跑同一份任务文件,结果才具备可比性。很多人误以为带宽高就快,实际上数据库在乎的是随机读的 IOPS 与稳定延迟。
测试会在被测设备上产生真实读写,请务必指向测试专用文件或空闲磁盘,切勿对存放重要数据的生产盘做破坏性写测试。理解 numjobs、iodepth、blocksize 等参数含义再下手,参数不对测出的数会严重失真。本工具用于你有权测试的存储设备性能评估。

同类工具怎么选
| 工具 | 授权 | 差别在哪 |
|---|---|---|
| CrystalDiskMark | 免费闭源 | Windows 下图形化测速直观,但不及 fio 的场景可控性。 |
| iozone | 开源免费 | 老牌文件系统基准,覆盖广,参数上手略复杂。 |
| dd | 开源免费 | 系统自带的顺序拷贝测速,简单但不反映随机负载。 |
谁适合用
- 做数据库与存储选型的运维工程师
- 需要对比云盘性能的架构师
- 喜欢用数据说话的硬件玩家
怎么开始
- 用包管理器安装 fio,例如 apt 或 yum 直接获取。
- 准备一个测试文件或指定空闲块设备作为目标。
- 编写任务文件,设定读写类型、块大小、线程与时长。
- 运行 fio 并读取输出的 IOPS、带宽与延迟分布。
- 更换参数或设备重复测试,横向对比得出结论。
常见问题
能在 Windows 上用吗?
主战场是 Linux,Windows 也有移植版本但社区使用与文档以 Linux 为主。
测试会弄坏硬盘吗?
正常读测试安全;写测试会消耗寿命,请只在测试盘上进行。
为什么两次结果差很多?
缓存、并发、设备负载都会影响,固定参数并多次取均值更稳。
看哪个指标最重要?
看业务类型:数据库重随机 IOPS 与尾延迟,大文件传输重带宽。
授权与合规
fio 以 GPL-2.0 开源协议发布,源码公开,可自由使用与修改。 官网:fio.readthedocs.io。
继续找同类资源
这条属于「软件工具」栏目,同栏目还有更多可直接使用的免费资源,可以在 软件工具全部资源 里按需翻阅。
相关资源
同栏目下这几条也常被一起翻到:
↓ 获取资源
点击按钮直接前往资源页面。