如何使用fio测试磁盘I/O性能

2015-10-22 17:14:55 4751

1.fio是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。简单好用的磁盘性能测试工具

2.安装

yum安装

#yum install libaio-devel fio

手动安装

#yum install libaio-devel

#wget http://www.landui.com/snaps/fio-2.2.10.tar.gz

#tar zxvf fio-2.2.10.tar.gz

#cd fio-2.2.10

#yum install gcc  #如果没有安装gcc编译器,下步会出错

#make && make install

1.fio用法

fio分顺序读、随机读、顺序写、随机写、混合随机读写模式。 

(1) filename: 指定文件(设备)的名称。可以通过冒号分割同时指定多个文件,如filename=/dev/sda:/dev/sdb

(2)directory: 设置filename的路径前缀。在后面的基准测试中,采用这种方式来指定设备。

(3)name: 指定job的名字,在命令行中表示新启动一个job

(4)direct: bool类型,如果设置成true (1),表示不使用io buffer

(5)ioengine: I/O引擎,现在fio支持19ioengine。默认值是sync同步阻塞I/OlibaioLinuxnative异步I/O。关于同步异步,阻塞和非阻塞模型可以参考文章“使用异步 I/O 大大提高应用程序的性能”。 (6)iodepth: 如果ioengine采用异步方式,该参数表示一批提交保持的io单元数。该参数可参考文章“Fio压测工具和io队列深度理解和误区”。

(7)rw: I/O模式,随机读写,顺序读写等等。

(8)bs: I/O block大小,默认是4k

(9)size: 指定job处理的文件的大小。

(10)numjobs: 指定job的克隆数(线程)

(11)time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复知道runtime时间结束。(12)runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。(13)group_reporting: 当同时指定了numjobs了时,输出结果按组显示。

4.测试

(1)输入命令以及参数

    

(2)回车之后等待片刻

     

(3)注意bwiops结果

bw:磁盘的吞吐量,这个是顺序读写考察的重点

iops:磁盘的每秒读写次数,这个是随机读写考察的重点

     

5.fio的配置文件fio.conf

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: