admin 管理员组

文章数量: 887006

目前主流的第三方IO测试工具有fio、iometer。windows下常用iometer进行测试,而fio则常用于Linux系统。用来测试本地磁盘、网络存储等的性能。

其配置灵活多样,支持多客户端并发测试(server、client模式),支持文件级、对象级存储测试,更对多种主流的存储如GlusterFS、CephFS等有专用测试引擎。测试结果包括IOPS、BW、lat等多种数据

1.安装fio

在fio官网下载fio-2.1.10.tar文件,解压后./configure、make、make install之后就可以使用fio了。

2、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=psync           io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息
此外
lockmem=1g               只使用1g内存进行测试
zero_buffers             用0初始化系统buffer
nrfiles=8                每个进程生成文件的数量

#fio -help查看每个参数,具体的参数可以在官网查看how to文档

例:100%随机,100%读, 4K

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

3.fio脚本

除了例子中的直接加命令行运行,还可以+配置文件脚本运行

fio   xxx.fio(脚本文件)

脚本基本格式:

; -- start job file --  ';'或'#'为fio脚本注释
[global] ;[global]为全局参数,即后面所有job都可以共享
rw=randread
size=128m

[job1] ;[job name]对应job 名,后面加该job特有参数

[job2]

; -- end job file --

变量参数传递:

; -- start job file --
[random-writers]
rw=randwrite
size=${SIZE}
numjobs=${NUMJOBS}
; -- end job file --

简单例子:

[mytest]
filename=/mnt/beegfs/fioTest
ioengine=psync
direct=0
thread
rw=randread
bs=4k
size=1g
numjobs=2
runtime=10
group_reporting

参数详解

本文标签: 测试工具 磁盘 详解 Windows io