千家信息网

Linux系统中如何使用FIO对硬盘进行压力测试

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍Linux系统中如何使用FIO对硬盘进行压力测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。
千家信息网最后更新 2025年11月08日Linux系统中如何使用FIO对硬盘进行压力测试

这篇文章主要介绍Linux系统中如何使用FIO对硬盘进行压力测试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,FIO的典型用途是编写和模拟的I/O负载匹配的作业文件。也就是说FIO 是一个多线程io生成工具,可以生成多种IO模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的IO测试)。

FIO安装

wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz yum install libaio-devel 安装依赖。我们一般使用libaio,发起异步IO请求。 tar -zxvf fio-2.0.7.tar.gz cd fio-2.0.7 make make install

简单介绍fio的参数

ioengine: 负载引擎,我们一般使用libaio,发起异步IO请求。 bs: IO大小 direct: 直写,绕过操作系统Cache。因为我们测试的是硬盘,而不是操作系统的Cache,所以设置为1。 rw: 读写模式,有顺序写write、顺序读read、随机写randwrite、随机读randread等。 size: 寻址空间,IO会落在 [0, size)这个区间的硬盘空间上。这是一个可以影响IOPS的参数。一般设置为硬盘的大小。 filename: 测试对象 iodepth: 队列深度,只有使用libaio时才有意义。这是一个可以影响IOPS的参数。 runtime: 测试时长

常见测试方法

顺序读
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
顺序写
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
随机读
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
随机写
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合随机读写
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

多盘fio测试脚本

#/bin/bash#author wsm#date 2019/06/17#fio顺序读测试#-filename 测试对象#-direct=1测试过程绕过机器自带的buffer。使测试结果更真实#-iodepth 1#-thread#-rw=read#-ioengine=psync io引擎使用pync方式#-bs=16k单次io的块文件大小为16k#-size=100G测试文件大小#-numjobs=30测试线程为30#-runtime=1000 测试时间为1000秒#-group_reporting 关于显示结果的,汇总每个进程的信息#-name=mytestfor i in {a..z} a{a..z};do fio -filename=/dev/sd$i -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=100G -numjobs=30 -runtime=1000 -group_reporting -name=mytestdone

测试结果

–型号:XXX; 硬盘:900G/SAS 10K/2.5寸硬盘/RAID18k 随机写:iops=7988k 随机读:iops=111908k 混合读写(读写7:3):读iops=1114 写iops=4791m 顺序写:iops=1701m 顺序读:iops=246 1m 顺序读写(读写7:3):读iops=134 写iops=56

以上是"Linux系统中如何使用FIO对硬盘进行压力测试"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

测试 顺序 硬盘 系统 文件 大小 磁盘 压力 参数 工具 线程 结果 操作系统 内容 对象 引擎 性能 模式 空间 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 加油站管理系统软件开发 色弱入职阿里软件开发 软件开发项目工作量统计表 如何建立园区安全生产人员数据库 南京智能化软件开发价格咨询 计算机软件开发包括几个阶段 国家金融网络安全系统概念股 监察对象数据库 珠海餐饮软件开发定制 软件开发每个阶段的任务 tp5 数据库迁移 互趣网软件开发 软件开发创业客户 文科生学计算机网络技术难吗 网络安全法 传播谣言 关于网络安全的反话儿童版 网络安全生态化 江苏数据软件开发过程品质保障 软件开发和测试人员关系 网络安全管理基础教程 山东服装职业学院网络技术专升本 服务器安全组可以替代防护吗 网络安全小课堂遇到中奖怎么办 服务器安全狗linux 网络安全事件桌面推演脚本 网络安全信息资产管理办法 数据库还用硬盘存储 武汉 网络安全 政策 xshell连接服务器修改密码 宋兰伟深圳软件开发
0