利用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
参数说明:
- -Rab:生成excel文件。“-a”表示自动模式,“-b”指定生成的excel报告文件名(即results.xls,位于
../../results
中) - -i:测试类别。此处指定了两轮随机读写测试
- -s:测试文件的大小。建议为16GB以上,过小的测试文件可能会直接命中读写缓存,造成数值偏高
- -r:测试文件的块大小。此处为16MB(大文件块,小文件块测试为1024K)
- -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
参数说明:
- -direct:是否跳过缓存直接进行IO操作。测试时应选择“1”,以免造成数值偏高
- -iodepthIO:队列深度。范围为1~32,默认为32
- -ioengine=libaio:使用libaio异步IO库作为引擎
- -bs:测试文件的块大小。默认为16K
- -size:测试文件的大小。此处为16G
- -rw:指定测试类别。支持的模式有:
write/read/rw/randwrite/randread/randrw
(即:顺序读写及随机读写)。
注:对于实际业务场景而言,一般随机读写性能更具有参考价值。
测试结果数据说明
1. 对于iozone的测试结果,需要关注项目:random read
和random write
(单位为KB/s)。数值越高性能越好。
2. 对于fio的测试结果,需要关注项目:Jobs:1 ... write/read: io= ... iops=XXXX
(单位为个)。数值越高性能越好。
— END —