Iozone 使用技巧

来源:互联网 发布:在哪里购买淘宝店铺 编辑:程序博客网 时间:2024/05/29 02:48

 Iozone 使用技巧

       最近可能要测试一下ext3和ext4文件系统,以前记得有这么一个工具,没怎么深入用过,现在打算瞧瞧,也算前期的准备工作吧。

       iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。 可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。

      运行规则:

            如果你希望得到对平台进行的一系列测试的精确结果,你应该确定测试的最大文件的大小应该大于 buffer cache,如果你不知道Buffer cache有多大,或者buffer cache是动态变化的,那么最大文件的大小要大于平台总共的物理内存。

          一般情况下你应该看到三或四种状态:

         文件大小刚好适合进程缓存(processor cache)

         文件大小刚好适合buffer cache

         文件大小大于buffer cache

         你可能看到另外的状态,如果平台有primary and secondary processor caches,如果你看到的状态少于三个,那么可能你的最大文件太小了,iozone默认的最大文件大小是512M,这对于一般系统是足够大的,但是对于一些大的系统就需要用-g选项增加最大文件的大小。

       测试类型解释:

       write 

      测试写一个新文件的性能,当写一个新文件时不仅需要存储数据本身,还需要存储定位这些数据的信息(类似inode节点表吧-个人理解),这样的性能比写入一个已有的文件性能要低。

       re-write

       数据写入一个已经存在的文件,他比写入新文件的性能要高。

       read

       测试读取一个已经存在的文件。

       re-read

       测试读取一个最近才读取过的文件,他的性能比较高,就像读取系统缓存的最近读取过的文件。

      random read

      从一个随机位置读取一个文件内容,他的性能受cache大小,磁盘大小,延迟等影响。

      random write

      随机写测试

      random mix

      随机的读写一个文件,这个测试只有在吞吐量测试模式下才可以进行

      record rewrite

      测试write和re-write一个文件的特殊区域,就像热点行为,如果热点足够小,并且适合cpu cache 那么他的性能非常高,如果热点区域大小大于cpu缓存但是适合TLB,性能会下降一点,如果热点区域大于cpu缓存和TLB缓存,但是小于系统缓存,则性能会再降一点,如果热点区域大于系统缓存则性能更差一点

      strided read

      测试读取一个文件的数据,采取以下方式:在某个点读取一个固定大小的数据A,然后跳过一段固定大小的数据B,再接着读取固定大小的数据A,再跳过一段大小的数据B,如此循环下去,大多数系统察觉不到这样的行为,没有好的技术手段提高性能。

      参数解释:

-a 

全自动模式,产生的输出包括所有的文件测试,record size是4k到16M,file size是64k到512M

-A

提供更加全面的全自动测试但是消耗更多时间。参数–a在文件不小于32MB时将自动停止使用低于64K的块大小测试。这节省了许多时间,而参数–A则告诉Iozone你不介意等待,即使在文件非常大时也希望进行小块 的测试。


-b

产生一个二进制文件,兼容execl

-R

产生execl报告,iozone会在标准输出产生一个execl兼容的报告,这个报告可以导入execl用来建立图片


-r

可以指定读写的块大小,单位可以是k m g

-s

可以指定测试文件的大小 单位可以是k m g


-f 

指定测试时使用的临时文件名,在使用umount参数时这个很有用,

-g

设置自动模式可用的最大文件的大小

-n

设置自动模式可用的最小文件的大小

-i

用来指定测试那个项目,可以使用多个-i指定多个项目

-q

设置自动测试的最大块大小 单位可以是k(Kbytes) m(Mbytes) g(Gbytes)

-y

设置自动测试的最小块大小,单位同上


-t 

以吞吐量模式运行,允许指定多个进程

       测试前要先清空缓存

    sync; echo 3 > /proc/sys/vm/drop_caches

    sync; echo 0 > /proc/sys/vm/drop_caches

       直接google 搜索iozone,打开官网,看了一下官方文档,可怜我那蹩脚的英文啊,好不容易看完了,写了这篇学习文档,然后想baidu一下,靠,第一条百科就有差不多完整的中文解释,所以不要迷恋google,有时度娘也是很给力的啊,对于网上流传的测试文件大小最佳为内存的2倍,我在官方文档中没有找到,或许没看见吧。

      参考链接:

     http://www.iozone.org/

     http://baike.baidu.com/view/3502720.html

原创粉丝点击