iozone - a filesystem benchmark tool 主要是用来测试文件系统 性能

2020-12-30 11:02:21 浏览数 (1)

简介:   

       磁盘设备之上是文件系统,测试磁盘的工具往往就是调用块设备驱动的接口进行读写测试。而文件系统的测试软件就是针对文件系统层提供的功能进行测试,包括文件的打开关闭速度以及顺序读写随机位置读写的速度。以及进程并发数目等各个方面进行详细的测试。

       IOZone是目前应用非常广泛的文件系统测试标准工具,它能够产生并测量各种的操作性能,包括read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write等操作。Iozone目前已经被移植到各种体系结构计算机和操作系统上,广泛用于文件系统性能测试、分析与评估的标准工具。

       IOZone和IOMeter不同,IOMeter的测试是基于数据块的,而IOZome的测试是基于文件的,因此更适合用来测试文件系统的性能。使用IOZone 可以在多线程,多CPU,并指定CPU Cache 空间大小以及同步或者异步IO读写模式的情况下进行文件操作的性能测试。

参考链接:http://www.iozone.org/

下载:可以在参考链接进行下载;在写此博文是 iozone的版本为3 487; 下载为 压缩包,解压后,根据软件说明文档可以进行编译生成 对应平台的 测试文件;

常用参数:(具体参数,可以参考iozone 文档,该文档较为详细)

代码语言:javascript复制
-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 # 的详细选项:

代码语言:javascript复制
Used to specify which tests to run. (0=write/rewrite, 1=read/re-read, 2=random-read/write
3=Read-backwards, 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/Repreadv).
One will always need to specify 0 so that any of the following tests will have a file to measure.
-i # -i # -i # is also supported so that one may select more than one test.

使用:

我们可以把生成的iozone 可执行文件拷贝到需要运行挂载点进行运行。也可以使用 -f 指定路径;

常用命令:

iozone –Ra

iozone –Rab output.wks

iozone –Ra –g 2G –i 0 –i 1

iozone –Rac (NFS 使用)注意此时-c 标志在nfs中的使用:

代码语言:javascript复制
This tells Iozone to include the close() in the measurement. This may be needed if the client is
running NFS version 3. Including the close() helps to reduce the client side cache effects of NFS version 3.
If you use a file size that is larger than the amount of memory in the client then the ‘c’ flag is not needed. 

使用范例:

在current目录下,执行测试指令

[root@localhost current]# ./iozone -a -n 1g -g 4g -i 0 -f /test.txt -Rb ./test.xls

说明:

代码语言:javascript复制
./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。

常用测试命令:

./iozone -R -a -b hvs-iozone.xls -c -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 

该命令中,-a表示使用全自动模式进行测试,并根据测试结果生成excel测试文件,程序生成的所有测试单次操作从4k到16M不等;文件尺寸从64k到512m不等;测试中-c表示包含close操作的时间,这在网络文件系统中起到一定作用。命令中表示对 0=write/rewrite, 1=read/re-read,2=random-read/write,3=Read-backwards,4=Re-write-record, 5=stride-read, 8=random mix 这几种读写模式进行测试;测试结果输出在命令行中,同时在输出 hvs-iozone.xls 文件中;

参考链接:

http://www.iozone.org/docs/IOzone_msword_98.pdf  (推荐)

https://www.cnblogs.com/ykhyq/p/9627843.html

保持更新,资源来源自网络。如果对您有帮助,请点击推荐给予鼓励吧。cnblogs.com/xuyaowen

0 人点赞