咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
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支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步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)注意bw和iops结果
bw:磁盘的吞吐量,这个是顺序读写考察的重点
iops:磁盘的每秒读写次数,这个是随机读写考察的重点
5.fio的配置文件fio.conf