侧边栏壁纸
博主头像
SRE实践 博主等级

行动起来,活在当下

  • 累计撰写 27 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

linux下硬盘性能测试方法IOPS

佚名
2025-08-18 / 0 评论 / 0 点赞 / 4 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

在 Linux 系统中,测试硬盘读写 IOPS(每秒输入 / 输出操作数)常用的工具是 fio(Flexible I/O Tester),它功能强大,支持多种 IO 模式测试。可用于分析系统瓶颈和测试已知服务的硬盘读写能力。以下是具体的测试方法:

1. 手动测试命令

安装fio工具

#centos/rocky/openeuler
yum install -y fio

#ubuntu/debian
apt install -y fio

随机写入 IOPS 测试

测试随机写入性能(模拟数据库等随机 IO 场景):

fio --name=randwrite --ioengine=libaio --iodepth=16 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting

参数说明:

  • --rw=randwrite:测试随机写入

  • --bs=4k:块大小为 4KB(常用的测试粒度)

  • --iodepth=16:IO 队列深度为 16

  • --direct=1:使用直接 IO(绕过系统缓存,真实反映磁盘性能)

  • --size=1G:测试文件大小为 1GB

  • --runtime=60:测试持续 60 秒

随机读取 IOPS 测试

测试随机读取性能:

fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting

参数与写入测试类似,仅将--rw=randread改为随机读取。

顺序写入吞吐量测试

如果需要同时测试顺序写入的吞吐量(MB/s):

fio --name=seqwrite --ioengine=libaio --iodepth=16 --rw=write --bs=128k --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting

顺序读取吞吐量测试

fio --name=seqread --ioengine=libaio --iodepth=16 --rw=read --bs=128k --direct=1 --size=1G --numjobs=1 --runtime=60 --group_reporting

测试结果关键指标解读:

测试结束后,重点关注以下指标:

  • iops:每秒完成的 IO 操作数(核心指标)

  • bw:吞吐量(MB/s)

  • lat:延迟(包括 min、max、avg、p99 等百分位延迟)

2. 自动测试命令

远程运行测试脚本

脚本会根据不同的系统类型自动安装所需的依赖包,并进行结果输出。

curl -fSL https://sreyun.oss-cn-shanghai.aliyuncs.com/dl/script/disk_fio.sh |bash

复制自动输出测试结果

0

评论区