Fio 测试工具

休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述Fio 测试工具相关的知识,希望能为你提供帮助。
参数注解:

filename=/dev/emcpowerb 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb
direct=1测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwread测试随机读的I/O
rw=randwrite测试随机写的I/O
rw=randrw测试随机混合写和读的I/O
rw=read测试顺序读的I/O
rw=write测试顺序写的I/O
rw=rw测试顺序混合写和读的I/O
bs=4k单次io的块文件大小为4k
bsrange=512-2048同上,提定数据块的大小范围
size=5g本次的测试文件大小为5g,以每次4k的io进行测试
numjobs=30本次的测试线程为30
runtime=1000测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psyncio引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
rwmixwrite=30在混合读写的模式下,写占30%
group_reporting关于显示结果的,汇总每个进程的信息
iodepth=16队列的深度为16.在异步模式下,CPU不能一直无限的发命令到SSD,比如SSD执行读写如果发生了卡顿,那有可能系统会一直不停的发命令,几千个,甚至几万个,这样一方面SSD扛不住,另一方面这么多命令会很占内存,系统也要挂掉了。这样,就带来一个参数叫做队列深度
thread使用pthread_create创建线程,另一种是fork创建进程。进程的开销比线程要大,一般都采用thread测试



顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest


随机读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k


随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest


顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest


混合随机读写:
fio -filename=/data/test.txt -direct=1 -iodepth 4 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -numjobs=4 -runtime=60 -group_reporting -name=mytest -ioscheduler=noop


推荐测试命令:
fio -filename=文件系统文件 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest



封装一下:

#!/bin/bash

fio -filename=/data/111.txt -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest > > /data/222.txt

IOwrite=`cat 222.txt | grep write:`
echo $IOwrite
IOread=`cat 222.txt | grep read:`
echo $IOread








【Fio 测试工具】


    推荐阅读