一、功能简介
iozone是一款文件系统的基准测试工具,用来全面测试不同操作系统的读写性能。可以测试 read, write, re-read,re-write, read backwards 等等不同模式下的硬盘性能。
二、安装iozone
网址:http://www.iozone.org
下面以iozone3_397.tar为例,介绍源码包安装过程(Debian 6):
下载源码包->解tarball-> cd iozone3_397/src/current -> make linux,会产生我们需要的iozone文件,现在就可以使用iozone了。
三、使用iozone
在使用iozone测试时,设置测试文件的大小一定要大过内存(通常推荐为实际内存大小的两倍),否则linux会为读写的内容进行缓存,使测试结果非常不真实。
1.全面自动测试模式
./iozone -a
2.输出Excel文档模式
./iozone -az 2G -Rb /root/iozone.xls
-a:全面自动模式,使用的块大小从4k到16M,当文件大于 32MB时会自动停止使用低于64K的块大小测试,这将节省测试时间;
-z :与-a连用,测试所有的块,强制iozone 在执行自动测试时包含小的块;
-R :生成Excel报告。iozone将生成一个兼容Excel的标准输出报告。这个文件可以使用Microsoft Excel打开;
-b filename : iozone输出结果时将创建一个兼容Excel的二进制格式的文件。
如果我们只关心读/写性能,不想花时间执行所有的测试,可以使用如下参数限制测试内容:
./iozone –Ra –g 2G –i 0 –i 1
-i #:设置I/O测试模式(0=write/Re-write,1=read/Re-read,2=random-read/write,3=Read-backwards … 12=preadv/Re-preadv);
-g:设置测试时最大文件大小
四、I/O模式
这里只介绍我最常用的几个模式,其他模式请参考iozone的帮助文档。
write:
测试向一个新文件写入的性能。
re-write:
测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。re-write的性能通常比write的性能高。
read:
测试读一个已存在的文件的性能。
re-Read:
测试读一个最近读过的文件的性能。re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。
五、iozone源码包的文件
· iozone.c (源码)
· libasync.c (源码)
· makefile (makefile)
· libbif.c (源码)
· Iozone_msword_98.doc(使用帮助文档)
· iozone.1 (nroff格式文档)
· gnuplot.dem (gnuplot示例文件)
· gnuplotps.dem (带附言的gnuplot示例文件)
· read_telemetry (用于telemetry读测试的示例文件)
· write_telemetry (用于telemetry写测试的示例文件)
· Run_rules.doc (程序运行规则)
· Changes.txt (iozone开发版本升级记录)
六、iozone测试结果一览
1. 测试命令
./iozone -Ra -g 16G -i 0 -i 1 -Rb /home/iozone.xls
2. 测试结果
测试完成以后,查看/home/iozone.xls文件,它详细记录了测试结果。现截取writer结果以做说明:
Writer Report
左侧一列是测试文件大小(K),最上边一行是块大小(K),中间数据是传输速度。例如下表中第二行的“90145”,即测试文件大小为64K,以块大小为8K来进行传输,传输速度为90145Kbytes/s 。表格中数据为0的部分是因为选择-a 参数时,系统默认在测试文件大于32M时将自动停止使用低于64K的块大小测试。如果想获取该部分数据,可选用参数-z。