fio磁盘压力测试工具

磁盘I/O性能分析

Posted by Derrick on June 2, 2022

fio工具描述

fio是一个产生大量线程或进程,执行用户指定的特定类型的I/O操作。典型用途fio的作用是编写一个与要模拟的I/O负载相匹配的作业文件。




fio命令参数详解

语法格式:fio [options] [jobfile]

常用参数:

filename 测试文件名称,通常选择需要测试的盘的data目录

direct 测试过程绕过OS自带的buffer,使测试磁盘的结果更真实

iodepth 队列深度

thread  使用pthread_create创建线程

rw=randwrite 测试随机写的I/O

rw=randrw 测试随机写和读的I/O

bs 单次io的块文件大小

size 每个线程读写的数据量

iodepth 观察fio输出中的输入/输出深度分布,默认值为1

numjobs 每个job开启的线程数

runtime 测试时间




参考示例:

进行随机读取测试:

[root@linuxcool ~]# fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=10G -numjobs=10 -runtime=100 -group_reporting -name=mytest

进行随机写入测试:

[root@linuxcool ~]# fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=10G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

进行顺序写入测试:

[root@linuxcool ~]# fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=10G -numjobs=30 -runtime=1000 -group_reporting -name=mytest