linux下使用fio工具进行存储设备性能测试

FIO是一个开源的、强大的I/O性能测试工具,可以用来对存储设备进行随机读写、顺序读写等负载测试。

目前我们现整理记录下,后面使用的时候再进行补充和完善。
我们还是首先需要进行安装

sudo apt install libaio* fio -y

安装好以后,我们就可以使用命令进行测试
1.顺序读测试

fio --name=test1 --direct=1 --ioengine=libaio --iodepth=1 --rw=read --bs=4k --size=1G --numjobs=1 --runtime=60

202506181941535930034202.png

2.顺序写测试

fio --name=test2 --direct=1 --ioengine=libaio --iodepth=1 --rw=write --bs=4k --size=1G --numjobs=1 --runtime=60

202506181943052802553213.png

3.随机读写测试

fio --name=test3 --direct=1 --ioengine=libaio --iodepth=4 --rw=randrw --rwmixread=70 --bs=4k --size=1G --numjobs=1 --runtime=60

202506181944034912468758.png

对于随机读写--rw参数需要改为randrw,设置读写比例--rwmixread,这里是70%读,30%写。
上述命令参数解释如下:

--name: 测试的名称。
--direct=1 测试中通常使用此参数以绕过缓存获得真实带宽
--ioengine: I/O引擎,libaio是异步I/O。
--iodepth: I/O深度。
--rw: 读写模式,rw读写,read为读,write为写,随机读是randread,随机写randwrite,随机读写randrw
--bs: 块大小,例如4k。
--size: 测试文件的大小,例如1G。
--numjobs: 并发任务数。
--runtime: 测试运行时间,例如60秒。
--filename: 测试文件的名字。

输出字段分析:

read/write: 读/写的IO操作
salt: 提交延迟,这是提交I/O所花费的时间(min:最小值,max:最大值,avg:平均值,stdev:标准偏差)
chat: 完成延迟,表示从提交到完成I/O部分的时间
lat: 相应时间,表示从fio创建I/O单元到完成I/O操作的时间
bw: 带宽统计
iops: IOPS统计
lat(nsec/usec/msec): I/O完成延迟的分布。这是从I/O离开fio到它完成的时间。与上面单独的读/写/修剪部分不同,这里和其余部分的数据适用于报告组的所有I/ o。10=0.01%意味着0.01%的I/O在250us以下完成。250=0.02%意味着0.02%的I/O需要10到250us才能完成。
cpu: cpu使用率
IO depths: I/O深度在作业生命周期中的分布
IO submit: 在一个提交调用中提交了多少个I/O。每一个分录表示该数额及其以下,直到上一分录为止——例如,4=100%意味着我们每次提交0到4个I/O调用
IO complete: 和上边的submit一样,不过这个是完成了多少个
IO issued rwt: 发出的read/write/trim请求的数量,以及其中有多少请求被缩短或删除
IO latency: 满足指定延迟目标所需的I/O深度

Run status group 0 (all jobs) 输出解析:

bw: 总带宽以及最小和最大带宽
io: 该组中所有线程执行的累计I/O
run: 这组线程中最小和最长的运行时。
最后是Linux中特有的磁盘状态统计信息的代表值含义:
ios: 所有组的I/O个数
merge: I/O调度器执行的总合并数
ticks: 使磁盘繁忙的应答数。
in_queue: 在磁盘队列中花费的总时间。
util: 磁盘利用率。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1053

评论列表