IOmeter测试工具使用说明
首先声明,本文99%抄袭网络文章
Iometer的用户指南上说,Iometer是一个单机或者集群的I/O子系统的测量和描述工具。它最初是由英特尔公司在1998年2月17日的英特尔开发者论坛(IDF)宣布,自那时以来,在行业内广泛的蔓延,成为了标准。与此同时,英特尔已经停止Iometer的开发工作并把开放源码交给了OSDL。 2001年11月,Iometer在SourceForge.net注册,开发项目从2003年月2月起又重新启动,当然项目维护者变成了独立的一个内部工作组。
Iometer属于测试软件中比较自由的,可以按照用户需要去调节测试的范围,数据块大小,处理模式等等,非常复杂,加之又是纯英文,一开始会比较晕。工作需要,学习了一下IOmeter的使用方法,又正好在网上看到一篇非常详细的介绍,于是抄过来为己用。
IOmeter = IOmeter.exe+Dynamo
IOmeter.exe为IOmeter工具在的服务端,用于提供GUI界面,仅有windows版本。
Dynamo为IOmeter工具的客户端,用于在测试机上工作,有linux和windows版本。
使用方法为在待测试的机器上运行Dynamo工具,运行命令为
./Dynamo -i IOmeterHOST-IP -m DynamoHOST-IP -n DynamoHOST-NAME
Dynamo /i IOmeterHOST-IP /m DynamoHOST-IP /n DynamoHOST-NAME
注意:运行时,服务端和客户端机器均需要关闭防火墙。windows可以在控制面板-防火墙-关闭防火墙,linux需要以root权限输入命令:service iptables stop。另外 -n(/n)参数可以不使用,默认使用主机名,建议使用该参数,将DynamoHOST-NAME设置为纯数字,以提高兼容性。
IOmeter运行之后,主界面如下
1)Topology/Workers:这是主机列表,如果局域网内有其他运行了Dynamo并指向本机的主机,也会显示在这个列表上的,这里有两台主机,其中KKGB-PC就是本机。001是局域网上的一台主机。Worker的数量取决于当前机器上的CPU核心数(我的CPU是酷睿2双核,001是i7四核八线程),每个Worker可以让你制定硬盘同时执行的线程数,不过一般我们家用测试只跑一个Worker即可,所以只需要1个Worker即可,多线程测试适合高性能服务器或者企业级的存储设备用的。这里多余的Worker我们可以在测试前删除。
2)Targets:(在设置Disk Target时会有3种不同的图标来表示不同类型的硬盘情况)
黄色图标的表示的是“Logical drive 逻辑磁盘”,意思就是已经分过区的,格式化的并且上面拥有文件系统的磁盘。(会显示硬盘分区卷标和卷标名)
如果黄色图标上加了红色删除的线,则代表的是这块逻辑硬盘上没有iobw.tst文件。Iometer在对逻辑硬盘测试前,会生成一个iobw.tst的测试文件,通过对这个文件进行”读取/写入“操作来计算IO成绩和传输率。
蓝色的图标表示的是“原始(RAW)硬盘”的意思,指的是这块硬盘上文件系统无法识别或者没分区和格式化,测试文件不能在上面创建。(会显示硬盘的型号)
这里有一点需要注意,如果之前做过Iometer逻辑硬盘测试,并在这个分区里已经有iobw.tst文件,则在下次做测试前必须先删除,不然是不能改变这个之前测试生成的iobw.txt文件大小的。(也就是说会影响到下次测试的准确性)
3)Maximum Disk Size / Starting Disk Sector / # of Outstanding IO:
一般的机械硬盘sector(扇区)大小为512字节(扇区为硬盘最小存储单位)。如果这里使用默认的0时,意思就是写满这块硬盘的所有扇区,如果你想测的是固定大小时,可以透过设置Maximum Disk Size这个参数来达到。输入1000就代表会在测试前生成一个大小为1000X512字节的iobw.tst测试文件。Starting Disk Sector指的是由硬盘的第几个扇区开始写入。(这里要强调一点,如果你设置的Maximun Disk Size数字比当前磁盘系统的缓冲区小的话,测试成绩很可能是缓冲区性能,速度会爆高,所以适当设大点吧。)
# of Outstanding I/O 指的是同时发送的IO请求(聪明人知道这个就是体现NCQ的作用了),预设值是1,一般家用测试不会去修改这个项目的,只有厂家秀分数做广告时会去改成32来跑最大IOPS忽悠用户。
4)Write IO Data Pattern(新版Iometer相比2006和2008版多出来的项目)
Repeating Bytes: 生成的IO数据是重复的,比如第一批IO数据是全”A”,第二批是全”B”,这个数据模型是Iometer 2008里默认使用的,也是最适合SandForce主控压缩算法的,所以SandForce做广告时都是用Iometer 2008的数据。
Peseudo random: 缓冲区里用随机的数据模型填满,写入完后再重新生成新的随机数据到缓冲区,造成每次写入IO都不同。这个数据模型是从最初的版本一直到Iometer 2006默认采用的,非常不适合SandForce主控进行压缩算法。
Full random:生成一套随机的16MB大小的数据模型到缓冲区。每次写入IO都会使用这套缓冲区的随机数据模型。(虽然是随机数据,但是由于每次的随机数据都一样,所以对采用了副本压缩技术的SandForce控制器,相当于每次只需要更新随机数据的索引部分即可,还是能够压缩部分数据。)
在直接面设置好主机、workers和待测的硬盘之后,可以进入Access Specification界面选择测试所用的脚本了。别问我那个Network Target界面,我也没用。
这个界面是添加测试脚本的界面,可以添加一个测试脚本,也可以添加多个测试脚本,双击右侧列表中的脚本,可以进入编辑模式
测试脚本的编辑模式如下图(盗图,懒得画框框)
1)Transfer Request Size (测试请求的文件大小)
你要测试的文件块大小,比如测4KB随机的就填写4KB,测128KB持续的就填128KB。
2)Percent of Access Specification (当前规则占此测试中的比例)
如果你测试中需要添加多条规则的话,这个就可以设置比例了,比如50%做4KB随机测试,同时另外50%做128KB持续测试。
3)Percent Read/Write Distribution (测试请求的读/写的比率)
当前测试规则的读取/写入比率,比如66%读取的同时34%为写入,打个比方,我们的操作系统运行时在读取的时候,后台也在写入。
4)Percent Random/Sequential Distribution (测试请求的随机/持续比例)
随机和持续占的百分比,比如测4KB随机80%的同时测4KB持续20%。
5)Align I/O on (对齐 I/O到指定大小)
SSD要分区对齐,这里也是这个道理,一般测SSD都是对齐到4KB。如果设4KB,指的是测试的数据每次都是4KB对齐的。
6)设置规则的全局显示
全部设置完了,起个名字,然后最后再看下没问题即可点下面的OK确认。
设置完脚本并且add到左边的框框里,切换到Test Setup界面
1)Run Time (测试时间)
可以设置测试的时间,如果全0代表无限。
2)Ramp up Time
我们知道如果磁盘系统使用阵列卡的话,上来会有个很高的缓存数据,为了保证测试数据的准确性,这里可以设置一定的时间,保证将缓存消耗完,这样测试结果就不会计算这部分时间的数据,得到更真实的测试数字。
然后点击绿色的小旗子,开始测试,程序会自动切换到这个界面,以显示测试信息什么的,就不用我废话了。
Iometer的用户指南上说,Iometer是一个单机或者集群的I/O子系统的测量和描述工具。它最初是由英特尔公司在1998年2月17日的英特尔开发者论坛(IDF)宣布,自那时以来,在行业内广泛的蔓延,成为了标准。与此同时,英特尔已经停止Iometer的开发工作并把开放源码交给了OSDL。 2001年11月,Iometer在SourceForge.net注册,开发项目从2003年月2月起又重新启动,当然项目维护者变成了独立的一个内部工作组。
Iometer属于测试软件中比较自由的,可以按照用户需要去调节测试的范围,数据块大小,处理模式等等,非常复杂,加之又是纯英文,一开始会比较晕。工作需要,学习了一下IOmeter的使用方法,又正好在网上看到一篇非常详细的介绍,于是抄过来为己用。
IOmeter = IOmeter.exe+Dynamo
IOmeter.exe为IOmeter工具在的服务端,用于提供GUI界面,仅有windows版本。
Dynamo为IOmeter工具的客户端,用于在测试机上工作,有linux和windows版本。
使用方法为在待测试的机器上运行Dynamo工具,运行命令为
./Dynamo -i IOmeterHOST-IP -m DynamoHOST-IP -n DynamoHOST-NAME
Dynamo /i IOmeterHOST-IP /m DynamoHOST-IP /n DynamoHOST-NAME
注意:运行时,服务端和客户端机器均需要关闭防火墙。windows可以在控制面板-防火墙-关闭防火墙,linux需要以root权限输入命令:service iptables stop。另外 -n(/n)参数可以不使用,默认使用主机名,建议使用该参数,将DynamoHOST-NAME设置为纯数字,以提高兼容性。
IOmeter运行之后,主界面如下
![]() |
1)Topology/Workers:这是主机列表,如果局域网内有其他运行了Dynamo并指向本机的主机,也会显示在这个列表上的,这里有两台主机,其中KKGB-PC就是本机。001是局域网上的一台主机。Worker的数量取决于当前机器上的CPU核心数(我的CPU是酷睿2双核,001是i7四核八线程),每个Worker可以让你制定硬盘同时执行的线程数,不过一般我们家用测试只跑一个Worker即可,所以只需要1个Worker即可,多线程测试适合高性能服务器或者企业级的存储设备用的。这里多余的Worker我们可以在测试前删除。
2)Targets:(在设置Disk Target时会有3种不同的图标来表示不同类型的硬盘情况)
黄色图标的表示的是“Logical drive 逻辑磁盘”,意思就是已经分过区的,格式化的并且上面拥有文件系统的磁盘。(会显示硬盘分区卷标和卷标名)
如果黄色图标上加了红色删除的线,则代表的是这块逻辑硬盘上没有iobw.tst文件。Iometer在对逻辑硬盘测试前,会生成一个iobw.tst的测试文件,通过对这个文件进行”读取/写入“操作来计算IO成绩和传输率。
蓝色的图标表示的是“原始(RAW)硬盘”的意思,指的是这块硬盘上文件系统无法识别或者没分区和格式化,测试文件不能在上面创建。(会显示硬盘的型号)
这里有一点需要注意,如果之前做过Iometer逻辑硬盘测试,并在这个分区里已经有iobw.tst文件,则在下次做测试前必须先删除,不然是不能改变这个之前测试生成的iobw.txt文件大小的。(也就是说会影响到下次测试的准确性)
3)Maximum Disk Size / Starting Disk Sector / # of Outstanding IO:
一般的机械硬盘sector(扇区)大小为512字节(扇区为硬盘最小存储单位)。如果这里使用默认的0时,意思就是写满这块硬盘的所有扇区,如果你想测的是固定大小时,可以透过设置Maximum Disk Size这个参数来达到。输入1000就代表会在测试前生成一个大小为1000X512字节的iobw.tst测试文件。Starting Disk Sector指的是由硬盘的第几个扇区开始写入。(这里要强调一点,如果你设置的Maximun Disk Size数字比当前磁盘系统的缓冲区小的话,测试成绩很可能是缓冲区性能,速度会爆高,所以适当设大点吧。)
# of Outstanding I/O 指的是同时发送的IO请求(聪明人知道这个就是体现NCQ的作用了),预设值是1,一般家用测试不会去修改这个项目的,只有厂家秀分数做广告时会去改成32来跑最大IOPS忽悠用户。
4)Write IO Data Pattern(新版Iometer相比2006和2008版多出来的项目)
Repeating Bytes: 生成的IO数据是重复的,比如第一批IO数据是全”A”,第二批是全”B”,这个数据模型是Iometer 2008里默认使用的,也是最适合SandForce主控压缩算法的,所以SandForce做广告时都是用Iometer 2008的数据。
Peseudo random: 缓冲区里用随机的数据模型填满,写入完后再重新生成新的随机数据到缓冲区,造成每次写入IO都不同。这个数据模型是从最初的版本一直到Iometer 2006默认采用的,非常不适合SandForce主控进行压缩算法。
Full random:生成一套随机的16MB大小的数据模型到缓冲区。每次写入IO都会使用这套缓冲区的随机数据模型。(虽然是随机数据,但是由于每次的随机数据都一样,所以对采用了副本压缩技术的SandForce控制器,相当于每次只需要更新随机数据的索引部分即可,还是能够压缩部分数据。)
在直接面设置好主机、workers和待测的硬盘之后,可以进入Access Specification界面选择测试所用的脚本了。别问我那个Network Target界面,我也没用。
这个界面是添加测试脚本的界面,可以添加一个测试脚本,也可以添加多个测试脚本,双击右侧列表中的脚本,可以进入编辑模式
![]() |
测试脚本的编辑模式如下图(盗图,懒得画框框)
![]() |
1)Transfer Request Size (测试请求的文件大小)
你要测试的文件块大小,比如测4KB随机的就填写4KB,测128KB持续的就填128KB。
2)Percent of Access Specification (当前规则占此测试中的比例)
如果你测试中需要添加多条规则的话,这个就可以设置比例了,比如50%做4KB随机测试,同时另外50%做128KB持续测试。
3)Percent Read/Write Distribution (测试请求的读/写的比率)
当前测试规则的读取/写入比率,比如66%读取的同时34%为写入,打个比方,我们的操作系统运行时在读取的时候,后台也在写入。
4)Percent Random/Sequential Distribution (测试请求的随机/持续比例)
随机和持续占的百分比,比如测4KB随机80%的同时测4KB持续20%。
5)Align I/O on (对齐 I/O到指定大小)
SSD要分区对齐,这里也是这个道理,一般测SSD都是对齐到4KB。如果设4KB,指的是测试的数据每次都是4KB对齐的。
6)设置规则的全局显示
全部设置完了,起个名字,然后最后再看下没问题即可点下面的OK确认。
设置完脚本并且add到左边的框框里,切换到Test Setup界面
![]() |
1)Run Time (测试时间)
可以设置测试的时间,如果全0代表无限。
2)Ramp up Time
我们知道如果磁盘系统使用阵列卡的话,上来会有个很高的缓存数据,为了保证测试数据的准确性,这里可以设置一定的时间,保证将缓存消耗完,这样测试结果就不会计算这部分时间的数据,得到更真实的测试数字。
然后点击绿色的小旗子,开始测试,程序会自动切换到这个界面,以显示测试信息什么的,就不用我废话了。
![]() |
还没人转发这篇日记