1.iometer简介
Iometer 为计算机I/O子系统所作的工作就如同测力计为引擎所作的工作一样:它测定在可控制的负荷下系统的性能。Iometer 可以被用来测量和描述:磁盘和网络控制器的性能、总线的带宽和时延容量、对于附带驱动器的网络吞吐量、共享总线的性能、系统级别的硬件驱动的性能、系统级别的网络性能。
Iometer 包含了两个程序,Iometer 和 Dynamo。
Iometer 是控制程序。使用图形用户接口(GUI),你可以配置负载,设置操作参数,启动和停止测试。Iometer 告诉Dynamo 去做什么,搜集分析数据,将分析数据输出到文件中。在某一时刻,只能有一个Iometer副本运行;典型的情况是运行在服务器上。
Dynamo 是负载生成器。它没有用户界面。当接收到Iometer 发送过来的命令,Dynamo执行相应的I/O 操作并且记录性能信息,然后将数据返回给Iometer。它可以有多个副本同时运行;典型的情况是服务器上运行一个副本,每个客户端运行一个副本。Dynamo 是多线程的;每一个副本都可以模拟多客户程序的工作负载。Dynamo中的每一个运行的副本称为一个管理者;副本中的一个线程称为工作者。
2.iometer工具安装
下载iometer软件,地址:http://www.iometer.org/doc/downloads.html
本文以iometer-1.1.0版本为例进行讲解,下载iometer-1.1.0-win64.x86_64-bin.zip,解压后包含Iometer.exe 和 Dynamo.exe两个文件。
3.Iometer.exe参数介绍
打开Iometer.exe文件后,主界面如下图:

上面按钮的左右从左到右依次为:
1)打开已有的测试配置文件;
2)保存现有的测试配置文件,默认文件名为iometer.icf;
3)新增一个负载生成器(Dynamo支持多现程,默认运行一个);
4)新增Disk Worker;
5)在已选定的主机下,新增Network Worker;
6)选中一个Disk Worker或Network Worker,点击该按钮可复制一个完全一样的worker;
7)开始测试按钮;
8)停止当前测试并保存测试结果;
9)中断所有测试,表明在生成iobw.tst测试文件;
10)将Workers配置复位;
11)删除Topology窗口下的Manager、Worker;
12)退出软件;
13)关于Iometer的帮助信息;
1.All managers 下的worker是根据机器的CPU个数生成的,默认选择1个worker即可。
3.1 Disk Targets界面
1.Disk targets中,选择需要测试的硬盘,可以选择一个或多个。



2.Maximum Disk Size:指生产测试文件的大学,默认为0,意思是写满这块硬盘的所有扇区;一般机械硬盘sector(扇区)大小为512字节(扇区为硬盘最小存储单位),计算方式:10G文件=1010241024*1024/512=20971520 Sectors。
3.Starting Disk Sector:表示由硬盘的第几个扇区开始写入,默认为0。
4.# of Outstanding I/Os:表示测试时同时发送的IO请求数,即线程数,指被选中worker中每个磁盘一次所允许的未处理的异步I/O的数量。
5.Use Fixed Seed:
6.Test Connection Rate:控制worker打开和关闭磁盘的频率。默认是Off,表示所有磁盘在测试开始的时候就是打开的,并在测试结束后被关闭。如果Test Connection Rate是打开的,worker会在测试开始的时候打开其所有的磁盘,当指定数量的事务在某个磁盘上执行完毕后,该磁盘就会被关闭,并在下一个I/O达到磁盘之前被重新打开(re-open),事务数量可以是0,意味着worker仅仅重复打开及关闭磁盘。事务是指一个I/O请求及其响应,是否有响应取决于Edit Access Specification对话框中的“Reply Size”设定。每个“打开+事务+关闭”的序列被称为一个连接(Connection),系统会为每个连接记录从打开到关闭所用的时间,系统会报告最大连接时间、平均连接时间以及每秒平均连接数。
7.Write IO Data Pattern:
Repeating Bytes: 生成的IO数据是重复的,比如第一批IO数据是全”A”,第二批是全”B”,这个数据模型是Iometer 2008里默认使用的,也是最适合SandForce主控压缩算法的,所以SandForce做广告时都是用Iometer 2008的数据。
Peseudo random: 缓冲区里用随机的数据模型填满,写入完后再重新生成新的随机数据到缓冲区,造成每次写入IO都不同。这个数据模型是从最初的版本一直到Iometer 2006默认采用的,非常不适合SandForce主控进行压缩算法。
Full random:生成一套随机的16MB大小的数据模型到缓冲区。每次写入IO都会使用这套缓冲区的随机数据模型。(虽然是随机数据,但是由于每次的随机数据都一样,所以对采用了副本压缩技术的SandForce控制器,相当于每次只需要更新随机数据的索引部分即可,还是能够压缩部分数据。)