首页 > 代码库 > 磁盘io系统压力测试工具fio

磁盘io系统压力测试工具fio

FIO概述
fio是一个基于GPLV2授权的开源压力测试工具,主要是用来测试磁盘io性能,也有cpu,nic的io测试功能。

1、安装FIO
yum -y install wget
yum -y install libaio-devel
wget http://brick.kernel.dk/snaps/fio-2.1.tar.gz
tar zxvf fio-2.1.tar.gz
cd fio-2.1
make
make install

2、fio测试命令参数
filename=/dev/sda1                 测试文件名称,通常选择需要测试的盘的data目录。 
direct=1                           测试过程绕过机器自带的buffer。使测试结果更真实。 
rw=randwrite                       测试随机写的I/O 
rw=randread                        测试随机读的I/O
rw=randrw                          测试随机写和读的I/O 
bs=16k                             单次io的块文件大小为16k 
bsrange=512-2048                   同上,提定数据块的大小范围 
size=5g                            本次的测试文件大小为5g,以每次4k的io进行测试。 
numjobs=30                         本次的测试线程为30. 
runtime=1000                       测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。 
ioengine=psync                     io引擎使用pync方式 
rwmixwrite=30                      在混合读写的模式下,写占30% 
group_reporting                    关于显示结果的,汇总每个进程的信息。 
此外 
lockmem=1g                         只使用1g内存进行测试。 
zero_buffers                       用0初始化系统buffer。 
nrfiles=8                          每个进程生成文件的数量

3、测试
随机读
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10 -runtime=1000 -group_reporting -name=test

随机写
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=test 

顺序读
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=test

顺序写
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=test

混合随机读写
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=test -ioscheduler=noop


本文出自 “郑彦生” 博客,请务必保留此出处http://467754239.blog.51cto.com/4878013/1531270