利用iozone和fio跑分工具进行ITSS标准存储设备性能测试

利用iozone和fio跑分工具进行ITSS标准存储设备性能测试。

什么是ITSS

ITSS(Information Technology Service Standards)信息技术服务标准,是在工业和信息化部、国家标准化委的领导和支持下,由ITSS工作组研制的一套IT服务领域的标准库和一套提供IT服务的方法论。

ITSS标准存储测试指标

  • 使用iozone benchmark工具测试存储的随机读写速度
  • 使用fio benchmark工具测试存储的随机IOPS(I/O per second)

测试工具安装

为了达到最优测试效果,所有工具推荐使用编译安装。

安装iozone

1. 下载iozone源码包:http://www.iozone.org/src/current/iozone3_484.tar(当前版本V3.484)

2. 上传源码并解压:

$ tar -xvf iozone3_484.tar

3. 进入安装目录,在其中新建一个results文件夹,用于存放测试结果:

$ mkdir results

4. 编译安装:

$ cd src/current
$ make linux

此处编译的版本为Linux-amd64,需要根据操作系统选择编译不同的版本。

安装fio

1. 下载fio源码包:https://github.com/axboe/fio/releases(当前版本V3.12)

2. 上传源码并解压:

$ tar -xvzf fio-3.12.tar.gz

3. 编译配置文件:

$ ./configure

4. 编译安装:

$ make
$ make install

测试方式

iozone测试随机读写速度

进入到src/current目录中,执行如下跑分命令:

$ ./iozone -Rab /results/results.xls -i 0 -i 2 -s 16g -r 16m -f /test/tmpfile

参数说明:

1. -Rab 生成excel文件。“-a”表示自动模式,“-b”指定生成的excel报告文件名(即results.xls,位于../../results中)

2. -i 测试类别。此处指定了两轮随机读写测试

3. -s 测试文件的大小。建议为16GB以上,过小的测试文件可能会直接命中读写缓存,造成数值偏高

4. -r 测试文件的块大小。此处为16MB(大文件块,小文件块测试为1024K)

5. -f 测试文件的存放路径。根据实际磁盘挂载情况修改

fio测试随机IOPS

发起随机写操作:

$ fio -name=/mnt/sdc/tmpfile -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=16k -size=16G -numjobs=1 -group_reporting -runtime=600

发起随机读操作:

$ fio -name=/mnt/sdc/tmpfile -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=16k -size=16G -numjobs=1 -group_reporting -runtime=600

参数说明:

1. -direct 是否跳过缓存直接进行IO操作。测试时应选择“1”,以免造成数值偏高

2. -iodepth IO队列深度。范围为1~32,默认为32

3. -ioengine=libaio 使用libaio异步IO库作为引擎

4. -bs 测试文件的块大小。默认为16K

5. -size 测试文件的大小。此处为16G

6. -rw 指定测试类别。此处为randwrite/randread

测试结果数据说明

1. 对于iozone的测试结果,需要关注项目:random readrandom write。单位为KB/s。数值越高性能越好。

2. 对于fio的测试结果,需要关注项目:Jobs:1 ... write/read: io= ... iops=XXXX。单位为个。数值越高性能越好。

END

喜欢本文或者觉得本文有用的话,还请点赞,谢谢

0