首页/系统/服务器硬件与 RAID 速查/磁盘 IO 压测验收(fio)
选型与验收72 条

磁盘 IO 压测验收(fio)

IO 验收用 fio 按业务画像压测:顺序与随机、读写比例、队列深度逐项设置;核对 IOPS、带宽与时延分布是否符合盘型与阵列配置的预期。

IO 验收的思路

IO 验收用 fio 按业务画像压测:顺序还是随机、读写比例、块大小与队列深度逐项设置,再核对 IOPS、带宽与时延分布是否符合盘型与阵列配置的预期。压测的价值在于留下可比数据,而不是跑出一个好看的峰值数字。

基本信息

工具fio,参数按业务画像组织
关键维度顺序/随机、读写比、块大小、队列深度
观察指标IOPS、带宽、时延分布
参照基准盘型规格与 RAID 配置的预期能力
数据真实性用 direct=1 绕过文件系统与设备缓存
测试对象文件系统上测端到端,裸设备测物理能力

典型使用场景

  • 新阵列上线:验证实际能力是否达到设计值
  • 变更对比:扩容或调整 RAID 级别后与旧数据比较
  • 故障复盘:性能下降时与验收基线对比
  • 交付留档:形成标准格式的测试报告
  • 迁移前评估:确认目标存储能满足业务画像
  • 调优验证:验证缓存与写策略调整的实际效果
  • 容量规划:用实测数据估算扩容后能达到的服务水平

随机读与顺序带宽

随机读与顺序带宽
# 随机读:4K 块、队列深度 32、4 个并发任务
fio --name=randread --rw=randread --bs=4k --iodepth=32 --numjobs=4 \
    --size=8G --runtime=300 --time_based --group_reporting --direct=1
# 顺序读:大块顺序访问,反映大文件传输能力
fio --name=seqread --rw=read --bs=1M --iodepth=8 --numjobs=1 \
    --size=16G --runtime=300 --time_based --group_reporting --direct=1

结果读法

指标含义判读要点
IOPS每秒完成的 IO 次数小文件随机场景主要看它
带宽每秒传输数据量大块顺序场景主要看它
时延分位平均与高百分位时延高百分位更能暴露问题
队列深度未完成的 IO 数量与业务并发特征对应
稳态区间排除预热后的读数取稳态值而非冲刺值
先明确测试对象:在文件系统上测反映端到端能力,直接对设备测反映物理能力,两者结论不同,报告里要写清楚测的是哪一种。
忽略缓存会得到虚高数据:文件系统缓存与阵列写缓存都会抬高读数,关键结论要在直接 IO 模式下复核。

易错点

  • 只测单一场景:结论与业务画像不符,验收等于没做
  • 忽略缓存影响:性能数据虚高,上线后达不到预期
  • 取冲刺峰值而非稳态值:报告好看,实际不可持续
  • 压测直接打在在线业务盘上:既影响生产,数据也不可信

数据来源与参考

  • fio 文档(README)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌