【工具】基准测试工具之iozone

  IOzone是一个文件系统测试工具,可以用来测试磁盘IO的读写性能,可以在各种操作系统上面使用.

下载

从官网 http://www.iozone.org/ 可以下载rpm 包,源文件进行安装。 

安装

  rpm -ivh iozone-3-408.i386.rpm

  yum install iozone

默认是安装在/opt/iozone 目录下的。

iozone参数介绍

Usage: iozone [-s filesize_Kb] [-r record_size_Kb ] [-f [path]filename]

  [-i test] [-E] [-p] [-a] [-A] [-z] [-Z] [-m] [-M] [-t children] [-h] [-o]

  [-l min_number_procs] [-u max_number_procs] [-v] [-R] [-x]

  [-d microseconds] [-F path1 path2...] [-V pattern] [-j stride]

  [-T] [-C] [-B] [-D] [-G] [-I] [-H depth] [-k depth] [-U mount_point]

  [-S cache_size] [-O] [-K] [-L line_size] [-g max_filesize_Kb]

  [-n min_filesize_Kb] [-N] [-Q] [-P start_cpu] [-c] [-e] [-b filename]

  [-J milliseconds] [-X filename] [-Y filename] [-w] [-W]

  [-y min_recordsize_Kb] [-q max_recordsize_Kb] [-+m filename]

  [-+u ] [ -+d ] [-+p percent_read] [-+r] [-+t ] [-+A ]

-a 全自动模式测试。测试记录块大小从4k到16M,测试文件从64k到512M

-A 使用自动模式虽然测试比较全面,但是比较花时间。-a选项将在文件大于32MB时停止使用低于64k一下记录块,来节省时间。-A通知iozone不要节省时间,进行所有测试。注:在3.61版本以后不建议使用,用-az代替-aA

-B 使用mmap()。这将使用mmap()接口来创建并访问所有测试用的临时文件。一些应用程序倾向于将文件当作内存的一块来看待。这些应用程序对文件执行mmap()调用,然后就可以以读写内存的方式访问那个块来完成文件I/O。

-c 计算时间将close()包括进来.

-C 显示吞吐量测试中每个客户端的字节数.

-D 对mmap文件使用MSYNC(MS_ASYNC)。告诉操作系统在mmap空间的所有数据需要被异步的写到磁盘上。

-e 测试时间是包含flush(fsync, fflush)

-f filename 指定用来测试临时文件,在测试完成后将被自动删除

-F filename filename ...

   指定测试中每个临时文件名,文件名的数量应该和指定的进程或线程数相同

-g  在自动模式下设置文件最大值,可以使用k m g分别表示kb,mb,gb

-G 对mmap文件使用msync(MS_SYNC)。告诉操作系统在mmap空间的所有数据需要被同步的写到磁盘上

-i  指定运行于哪种模式测试。可以使用-i  -i  -i 进行多个测试

0=write/rewrite

1=read/re-read

2=random read/random write

3=backwards read

4=re-write-record

5=stride-read

6=fwirte/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

-I 对所有文件操作使用DIRECT I/O。通知文件系统所有操作跳过缓存直接在磁盘上操作

-j 设置访问文件的跨度为( * 块)。stride read测试将使用这个跨度来读块

-J 在每个I/O操作之前产生指定毫秒的计算延迟 单位(毫秒)。看-X和-Y获取控制计算延迟的其他参数

-l 设置程序最小进程数。在测试过程允许用户设置的最小进程或线程数。需要配合-u选项使用。

-L 设置处理器交换信息的单位量为(bytes)。可以加速测试。

-m iozone将在内部使用多个缓存。一些程序反复复写一块缓存,还有就是设置多个缓存块。此参数将允许使用这两种模式。iozone默认行为是重复使用内部一个缓存。此选项将允许在内部使用多个缓存块。

-M调用uname(),将返回字符串放在输出文件中

-n 设置自动模式下测试文件的最小值

-N报告结果以毫秒每操作的方式显示

-o写方式是同步写到磁盘上

-O报告结果以操作每秒方式显示

-q 在自动模式下设置记录块的最大值,可以使用k(kb),m(mb),g(gb)。使用-y可以设置最小值

-r 设置记录块大小为

-R使用Excel显示结果

-s 设置测试文件大小

-S 设置处理器的缓存大小

-t 设置测试程序的线程或进程数

-T 使用POSIX的pthreads进行测试

-u 设置最大进程或线程数,需要配合-l参数使用

-U mountpoint在测试开始之前,iozone将unmount和remount挂载点。这将保证测试中缓存不包含任何文件

-w 在测试结束后不要删除临时文件。临时文件将在测试过后保存下来

-W 在测试过程中,当读或写文件时锁住文件

-y 设置记录块最小值

-z 同-a一起使用,进行全部测试

-Z 允许mmap I/O和file I/O混合使用

测试模型的介绍

Write: 测试向一个新文件写入的性能。当一个新文件被写入时,不仅仅是那些文件中的数据需要被存储,还包括那些用于定位数据存储在存储介质的具体位置的额外信息。这些额外信息被称作“元数据”。它包括目录信息,所分配的空间和一些与该文件有关但又并非该文件所含数据的其他数据。拜这些额外信息所赐,Write的性能通常会比Re-write的性能低。

Re-write: 测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。Re-write的性能通常比Write的性能高。

Read: 测试读一个已存在的文件的性能。

Re-Read: 测试读一个最近读过的文件的性能。Re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。

Random Read: 测试读一个文件中的随机偏移量的性能。许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。

Random Write: 测试写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。

Random Mix: 测试读写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。这个测试只有在吞吐量测试模式下才能进行。每个线程/进程运行读或写测试。这种分布式读/写测试是基于round robin 模式的。最好使用多于一个线程/进程执行此测试。

Backwards Read: 测试使用倒序读一个文件的性能。这种读文件方法可能看起来很可笑,事实上,有些应用确实这么干。MSC Nastran是一个使用倒序读文件的应用程序的一个例子。它所读的文件都十分大(大小从G级别到T级别)。尽管许多操作系统使用一些特殊实现来优化顺序读文件的速度,很少有操作系统注意到并增强倒序读文件的性能。

Record Rewrite: 测试写与覆盖写一个文件中的特定块的性能。这个块可能会发生一些很有趣的事。如果这个块足够小(比CPU数据缓存小),测出来的性能将会非常高。如果比CPU数据缓存大而比TLB小,测出来的是另一个阶段的性能。如果比此二者都大,但比操作系统缓存小,得到的性能又是一个阶段。若大到超过操作系统缓存,又是另一番结果。

Strided Read: 测试跳跃读一个文件的性能。举例如下:在0偏移量处读4Kbytes,然后间隔200Kbytes,读4Kbytes,再间隔200Kbytes,如此反复。此时的模式是读4Kbytes,间隔200Kbytes并重复这个模式。这又是一个典型的应用行为,文件中使用了数据结构并且访问这个数据结构的特定区域的应用程序常常这样做。许多操作系统并没注意到这种行为或者针对这种类型的访问做一些优化。同样,这种访问行为也可能导致一些有趣的性能异常。一个例子是在一个数据片化的文件系统里,应用程序的跳跃导致某一个特定的磁盘成为性能瓶颈。

Fwrite: 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。这个测试是写一个新文件,所以元数据的写入也是要的。

Frewrite:测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。这个测试是写入一个已存在的文件,由于无元数据操作,测试的性能会高些。

Fread:测试调用库函数fread()来读文件的性能。这是一个执行缓存与阻塞读操作的库例程。缓存在用户空间之内。如果一个应用程序想要读很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。

Freread: 这个测试与上面的fread 类似,除了在这个测试中被读文件是最近才刚被读过。这将导致更高的性能,因为操作系统缓存了文件数据。

几个特殊测试:

Mmap:许多操作系统支持mmap()的使用来映射一个文件到用户地址空间。映射之后,对内存的读写将同步到文件中去。这对一些希望将文件当作内存块来使用的应用程序来说很方便。一个例子是内存中的一块将同时作为一个文件保存在于文件系统中。

mmap 文件的语义和普通文件略有不同。如果发生了对内存的存储,并不是立即发生相应的文件I/O操作。使用MS_SYNC 和MS_ASYNC标志位的 msyc()函数调用将控制内存和文件的一致性。调用msync() 时将MS_SYNC置位将强制把内存里的内容写到文件中去并等待直到此操作完成才返回。而MS_ASYNC 置位则告诉操作系统使用异步机制将内存刷新到磁盘,这样应用程序可以直接返回而不用等待此操作的完成。这个测试就是测量使用mmap()机制完成I/O的性能。

Async I/O: 许多操作系统支持的另外一种I/O机制是POSIX 标准的异步I/O。本程序使用POSIX标准异步I/O接口来完成此测试功能。

例如: aio_write(), aio_read(), aio_error()。这个测试测量POSIX异步I/O机制的性能。

参考资料:

http://space.itpub.net/21605631/viewspace-715298

http://my.oschina.net/guol/blog/37302

http://bbs.chinaunix.net/thread-1940005-1-1.html

下载rpm包:

http://pkgs.org/centos-5-rhel-5/repoforge-x86_64/iozone-3.315-1.el5.rf.x86_64.rpm.html

时间: 2024-11-11 03:05:25

【工具】基准测试工具之iozone的相关文章

六款优秀的 Linux 基准测试工具

基准测试是指运行计算机程序去评估硬件和软件性能的行为.硬件基本测试包括评估处理器,内存,显卡,硬盘,网络等不同组件的性能. 基准测试有两类: 复合和应用.复合基准对一个硬件执行压力测试,如连续写入和读取数据.应用基准则是衡量真实世界应用程序如数据库和服务器的性能.基准测试软件可以让系统 测试者和用户客观独立的评估硬件性能.Linux下有许多优秀的开源Linux基准测试工具,如Phoronix Test Suite,IOzone,netperf等. Phoronix Test Suite phor

【工具】基准测试工具之sysbench

sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况 它主要包括以下几种方式的测试: 1.cpu性能 2.磁盘io性能 3.调度程序性能 4.内存分配及传输速度 5.POSIX线程性能 6.数据库性能(OLTP基准测试) 目前sysbench主要支持 mysql,pgsql,oracle 这3种数据库. 一 前期准备 1 下载 sysbench   http://sf.net/projects/sysbench/ 2 安装: [root@

数据库基准测试工具 LinkBench

    LinkBench 是一个数据库基准测试工具,用来模拟 Facebook 产品 MySQL 数据库的性能和工作负载.LinkBench 高度可配置和可扩展,可配置用于不同的工作负载,并可编写插件来对其他数据库系统进行测试. 作为一个用于基准测试和调整数据库系统的开发人员工具,LinkBench是设计来重制(replicate)混合了数据模型.图状结构(graph structure),以及Facebook的MySQL社交图谱的请求量负荷的. 最新内容请见作者的GitHub页:http:/

Google 发布开源云基准测试工具 —— PerfKit

PerfKit 是 Google 公司推出的一款开源的云基准测试工具,PerfKit 提供一组基准测试方法用来测量和比较云服务.当前支持 Google 自己的 Compute Engine.亚马逊的 AWS 和微软的 Azure 云.目前为该项目在工作的有超过 30 个研发人员.公司和客户,包括:ARM, Canonical, Cisco, Intel, Microsoft, Rackspace and Red Hat. PerfKit 同时还提供一个可视化工具 PerfKit Explorer

Flash CS4中的3d工具,deco工具和骨骼工具

核心提示:Flash Cs4在界面上与其上一个版本cs3总体来说并没有特别大的区别,下面就让我们来介绍一下CS4中的工具吧. Flash Cs4在界面上与其上一个版本cs3总体来说并没有特别大的区别,下面就让我们来介绍一下CS4中的工具吧.在工具菜单中 添加了3d工具deco工具骨骼工具. 针对mc添加了一个动画编辑器. 脚本语言没有变化. 主要针对新版本中的3d功能以及骨骼工具做了相对的试用下面是具体的示例. 一.3d工具的使用以实例 cs4没有3dmax等3d软件强大的建模工具,但是在cs4

使用稻草人便民工具快捷工具快速管理PC

  在Windows操作系统中,大量的设置按钮,有时候会让你头昏眼花,即是当你需要针对性地去查找某项设置,对计算机进行需要的调整时,要花费比较多的时间是一件非常麻烦的事情.稻草人便民工具作为一款人们生活中的辅助工具.在辅助用户对电脑系统设置时,提供了常用的快捷工具,相信在这些常用快捷按钮的辅助下,提升你使用计算机的效率. 稻草人便民工具"快捷工具"界面下 稻草人便民工具提供Windows操作系统的属性设置.常用工具和管理工具等三个方面的实用功能快捷启动入口. "属性设置&qu

Red Flag Linux Desktop 6.0用户手册:工具盘工具列表

红旗公司为方便广大用户的使用,特集成了一张工具盘中供用户选用.盘中所有工具均可在系统中正常运行.在运用过程中,如果工具盘中的软件出现任何问题,敬请用户借助网络.书籍等各种方式进行自学.处理. 工具盘工具列表 程序名称 功能说明和描述 base OpenOffice.org 2.2数据库 calc OpenOffice.org 2.2电子表格 draw OpenOffice.org 2.2矢量绘图 impress OpenOffice.org 2.2演示文稿 math OpenOffice.org

【工具】基准测试工具之tpcc-mysql

   TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能.Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端. 一 下载工具   安装rpm包 ,根据系统的不同选择合适的rpm    rpm -Uvh http://dl.f

基准测试工具之tpcc-mysql

TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能.Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端. 一 下载工具 安装rpm包 ,根据系统的不同选择合适的rpm rpm -Uvh http://dl.fedorapro