一、简介
磁盘设备之上是文件系统,测试磁盘的工具往往就是调用驱动块设备驱动的接口进行读写测试。而文件系统的测试软件就是,针对文件系统层提供的功能进行测试,包括文件的打开关闭速度以及顺序读写,还有随机位置的读写以及进程并发数目等各个方面进行详细的测试。
iozone,io测试的标准软件,benchmark(基准),主要测试的是文件系统的各种读写性能,包含顺序读写以及随机读写,fread/fwrite读写,大跨度读写等等,在测试文件的读写性能方面,测试范围广,指标精确。
二、测试定义
write |
测试向一个新文件写入的性能 |
re-write |
测试向一个已经存在的文件写入的性能 |
read |
测试读一个已经存在的文件的性能 |
re-read |
测试读一个最近读过的文件的性能 |
random read |
测试读一个文件中的随机偏移量的性能 |
random write |
测试写一个文件中的随机偏移量的性能 |
random mix |
测试读写一个文件中随机偏移量的性能 |
三、常用参数
-a 全面测试,比如块大小它会自动加;
-i N 用来选择测试项(具体参数,后面有详细描述);
-r block size 制定一次写入/读出的块大小;
-s file size 制定测试文件的大小;
-f filename 制定测试文件的名字,完成后会自动删除;
-F file1 file2….. 多线程下测试的文件名;
-g –n 指定测试文件大小范围。-n 后接最小值,-g 后接最大值 ,如测试512m-4G:-n 512m –g 4G;
-y –q 指定测试块的大小范围;
-R 产生excel到标准输出;
-b 制定将结果输出到制定文件上,比如:-Rb test.xls;
四、-i N详细介绍
N代表数字,不同的数字,则代表不同的测试模式,可以同时执行多个模式
0 |
write/rewrite |
1 |
read/re-read |
2 |
random read/random write |
3 |
backwards read |
4 |
re-write-record |
5 |
stride-read |
6 |
fwrite/re-fwrite |
7 |
fread/re-fread |
8 |
random mix |
9 |
pwrite/re-pwrite |
10 |
pread/re-pread |
11 |
pwritev/re-pwritev |
12 |
preadv/re-preadv |
四、搭建
1、 下载安装包iozone3_482.tar
去官网下载iozone源码包,然后编译适合自己的target的执行文件。
# tar -xvf iozone3_482.tar
2、 安装gcc
挂载linux(我使用虚拟机操作)镜像文件。进入yum源目录,安装gcc包
# [root@localhost KYLIN]# yum install gcc-4.4.7-4.ky3.x86_64.rpm
五、使用
1、进入iozone安装目录current目录
/root/iozone3_482/src/current,每个人根据自己实际安装地址。
2、 make linux
在current目录下,执行make linux执行
3、 执行
在current目录下,执行测试指令
[root@localhost current]# ./iozone -a -n 1g -g 4g -i 0 -f /test.txt -Rb ./test.xls
测试结果如下图所示:
注释:
./iozone:运行iozone工具;
-a:进行全面测试;
-n 1g:测试最小文件为1g;
-g 4g: 测试最大文件为4g;
-I 0: 测试模式为写;
-f: 测试文件为:/test.txt;
-Rb: 将测试结果放入test.xls;
六、测试结果分析
打开test.xls文件,如下图所示:
在excel文件中,说明了这个表单关于write的测试结果,最左侧一列是测试文件的大小(Kbytes);最上的横行,是记录大小;中间数据是测试的传输数据。
如,213749,表示测试文件大小为1G,以记录大小为1m来进行传输,它的传输速度为213749kbytes/s。