Skip to main content

在 Ubuntu 18.04 下测试硬盘 IOPS 上限,最标准、准确的工具

Ubuntu 18.04 下测试硬盘 IOPS 上限,最标准、准确的工具是:

首选:fio(Linux 官方推荐 I/O 压测工具)

Ubuntu18.04 自带 apt 包,可直接安装:

sudo apt-get update
sudo apt-get install fio

🚀 一条命令测试硬盘 IOPS 上限(随机 4K)

1)随机写 IOPS 上限(4K)

fio --name=4k-randwrite --filename=/data/testfile --size=2G \
--bs=4k --rw=randwrite --iodepth=32 --numjobs=4 --direct=1 --time_based \
--runtime=30 --group_reporting

2)随机读 IOPS 上限(4K)

fio --name=4k-randread --filename=/data/testfile --size=2G \
--bs=4k --rw=randread --iodepth=32 --numjobs=4 --direct=1 --time_based \
--runtime=30 --group_reporting

参数说明(关键):

  • --bs=4k → 4K 块,测数据库最常用 IOPS

  • --rw=randreadrandwrite → 随机读/写

  • --numjobs=4 → 相当于 4 个线程(可根据 CPU 增加)

  • --iodepth=32 → 队列深度

  • --direct=1 → 绕过缓存,真实测试磁盘

  • --runtime=30 → 运行 30 秒

  • --group_reporting → 整合输出


🔥 测 IOPS 上限的最强命令(压榨到极限)

适用于 NVMe / RAID / SSD:

fio --name=max-iops --filename=/data/testfile --size=4G \
--rw=randread --bs=4k --numjobs=8 --iodepth=64 --direct=1 \
--time_based --runtime=60 --ioengine=libaio --group_reporting

适合直接看你的硬盘理论上限。


✨ 输出中重点看:

  • IOPS(最关键)

  • lat (usec) 平均延迟

  • clat 99%、99.99% 延迟

  • bw(带宽)


🧪 附:连续写(顺序写)带宽测试

顺序写:

fio --name=seqwrite --filename=/data/testfile --size=4G \
--bs=1M --rw=write --direct=1 --runtime=30 --group_reporting

顺序读:

fio --name=seqread --filename=/data/testfile --size=4G \
--bs=1M --rw=read --direct=1 --runtime=30 --group_reporting

❗注意事项

  • 测试前必须确保目录里有足够空间

  • 测试会产生文件(测试后删除即可)

  • 如果是生产服务器,请避免测试期间影响业务

  • --direct=1 必须开启,否则测试的是缓存不是磁盘


如果你愿意

你可以把 fio 输出发给我,我能帮你分析:

✔ IOPS 是否正常
✔ 是否被 CPU / RAID / 控制器限制
✔ 能否进一步优化 IO 性能(比如调整 iodepth/numjobs)

随时发我即可。