《存储工具系列文章》主要介绍存储相关的测试和调试工具,包括不限于dd、fio、vdbench、iozone、iometer、cosbench等性能负载工具,及strace等调试工具。
1 概述
Iometer 是一个免费的开源的测试磁盘性能的工具。和其他磁盘工具相比,可以测试 I/O 的传输率和平均的 I/O 响应时间。其第一个版本20年前就已经出来了,当时是用于 Windows NT。但它现在仍是一款很有用的工具,因为它也可以在 Win 10/下工做,甚至与 Vista 和 Windows 2008 下。
Iometer 支持许多不同的设置。在这篇日志中,我只想告诉你如何初步使用这个漂亮的免费磁盘的测量工具。
Iometer由Intel公司研发并经过严格论证,是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。Iometer 为计算机I/O子系统所作的工作就如同测力计为引擎所作的工作一样:它测定在可控制的负荷下系统的性能。
Iometer 既是工作负载生成器(也就是说,它可以进行输入输出操作,以便增加系统的负荷),它还是一个测量工具(也就是说,它检查并且记录I/O 操作的性能和对系统的影响)。它可以被配置为模拟任何程序或者基准测试程序的磁盘和 络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测量单系统或者多系统( 络)的负载。
1.1 测试范围
Iometer可以被用来测量和描述:
- 磁盘和 络控制器的性能
- 总线的带宽和时延容量
- 对于附带驱动器的 络吞吐量
- 共享总线的性能
- 系统级别的硬件驱动的性能
- 系统级别的 络性能
1.2 设计组成
Iometer 包含了两个程序,Iometer 和 Dynamo。
Iometer 是控制程序。使用图形用户接口(GUI),你可以配置负载,设置操作参数,启动和停止测试。Iometer 告诉Dynamo 去做什么,搜集分析数据,将分析数据输出到文件中。在某一时刻,只能有一个Iometer副本运行;典型的情况是运行在服务器上。
2 安装部署
Iometer的Windwos版本安装和一般的应用程序一致,不再说明。
Linux版本下只能使用负债生成器Dynamo,在Linux环境下,解压对应的压缩包,如“tar –zxvf iometer-2006_07_27.linux.i386-bin.tgz”到指定目录即可。
3 测试案例
3.1 本机测试
一、启动Iometer.exe,如下图所示:
二、切换到Access Specifications标签页,如下图所示
三、编写存储读写规则
上图中需要修改的3处地方,其中传输数据块大小在应用服务器类型测试为4KB,数据库服务器类型测试为8KB;读写百分比在应用服务器类型测试为读100%,数据库服务器类型测试根据实际情况来判断,如纯查询的数据库读100%,一个典型的业务系统的数据库系统,按照默认的67%读即可;随机/连续存取百分比在应用服务器类型测试为100%,数据库服务器类型测试为100%;(测试人员可根据实际情况修改此处数值,典型的OLAP环境:选择顺序的大IO,测试存储所能支持的最大吞吐量以及响应时间;典型的OLTP环境:选择随机的小IO,测试存储所能支持的最大IOPS以及响应时间)
四、切换到Results Display标签
在此处可以设置为刷新时间为10S.
五、切换到Test Setup页签
在此处设置运行时间为30Min。
六、切换到Disk Targets页签
分别为每个worker设定磁盘分区,建议选择同一个磁盘分区。如果是linux系统的话,会看到如下图所示的情况
此处要选择逻辑卷进行测试,一般选择/opt。
七、执行测试
点击
八、查看测试结果
3.2 络客户端测试
一、打开被测试机的命令行窗口
此时服务器的GUI界面显示如下图:
切换到NetWork Targets页签
其他三个页签的设置同本机测试相同,不再重复
查看测试结果
4 功能介绍
启动Iometer.exe,在windows上双击Iometer图标;在Iometer启动的同时会自动运行Dynamo.exe。如下两图所示:
Iometer用户界面有以下主要元件:
- Toolbar:工具栏,进行共同的操作例如开始和停止测试。
- Status bar: 状态栏,显示在测试列中当前正在执行的测试。
- Topology panel: 拓扑结构面板,显示可利用的管理器(Dynamos) 和工作线程(Worker)。在这个面板上Manager和Worker可以选择应用工具栏、磁盘目标、 络目标和存储规格选项,并且这个面板为结果显示列表选择Manager和Worker。
- Tabbed panels:被选中的面板,控制测试的参量的几个不同的选项。
- Disk Targets tab:磁盘目标选项,指定每个磁盘Worker使用的磁盘。
- Network Targets tab: 络目标选项,指定每个 络Worker使用的 络界面。
- Access Specifications tab:存储规格选项,指定I/O操作类型,每个Worker执行它的目标。
- Results Display tab:结果显示选项,显示测试中性能数据。
- Test Setup tab:测试设置选项,指定在测试系列将执行的测试。
4.1 Toolbar –工具栏
工具栏为共同的命令提供按钮,要执行这些命令中的任一个,便点击此按钮。下面将为每个按钮的简要说明。按钮执行的功能如下:
当拓扑结构面板里没有managers时,除了打开, 保存, 开始新的Manager, 退出按钮外, 其他按钮都是灰色的;当运行一个测试时,除了停止,中断, 退出按钮外,其他按钮都是灰色的;当没有测试运行时,停止和中断按钮是灰色的。
4.2 Status Bar –状态栏
当你按下开始测试按钮时,Iometer进行一系列的测试,在Iometer窗口的底部的状态栏里显示通过存储规格选项和测试设置选项里被指定的当前测试数量和将要运行的测试的总数。
例如,在存储规格选项中每个Worker选取两种存储规格,测试设置选项设置两个测试,Iometer将一共运行四个测试:
1. Access specification #1, test #1 (shown as “Run 1 of 4”)
2. Access specification #1, test #2 (shown as “Run 2 of 4”)
3. Access specification #2, test #1 (shown as “Run 3 of 4”)
4. Access specification #2, test #2 (shown as “Run 4 of 4”)
每次测试运行时间通过测试设置选项里中的测试运行时间控制组来设置,如果运行时间设置为零,直到你按停止按钮,运行的测试才会停止。状态栏也显示其他信息,如失败的测试和预备的驱动器,预备的驱动器信息表明iobw.tst文件将在逻辑驱动器上被创建。
4.3 Topology panel -拓扑结构面板
拓扑结构面板显示当前活动的管理器(Dynamo)和线程(Worker)的分级表。
- 点击worker,manager,或All Managers,去查看和修改他的磁盘目标、 络目标和存储规格等选项的设置。
- 如果你点击一个worker,可以使用这个worker上的磁盘目标、 络目标和存储规格选项,可以修改当前设置,所有改变将被应用于这个worker上。
- 如果你点击一个manager,上面分布一系列的适合manager的磁盘目标和 络目标选项,可以修改这些选项,(当manager上所有的worker设置相同时,将显示这些数值;反之,worker的数值不同时,将显示灰白色。)所有改变将被应用于这个manager的worker上。
- 如果你点击“All Managers”,没有目标在磁盘目标或 络目标选项显示,因为managers的目标列表也许是不同的。对他们进行适合类型的相同的修改,这些目标数值将被显示,所有改变将被应用于所有manager上的所有worker上。
- 双击manager,All Managers,将显示或隐藏它的子选项。
- 用鼠标右键单击manager更新它的目标列表。
- 扯拽worker,manager,All Managers,可以在一个表里查看此次测试运行的结果。
出现在拓扑结构面板的标准情况如下:
4.4 Disk Targets tab -磁盘目标选项
磁盘目标选项允许你监测和控制当前在拓扑结构面板上已选择的磁盘worker所使用的磁盘。
逻辑驱动器显示为一个黄色盘图标、驱动器字母和任意名字。(只有当它们是写状态时)
开始运行时,Iometer会写一个名为“iobw.tst.”的文件存储到逻辑驱动器上,如果这个文件不存在,这个逻辑驱动器图标前将有个红色的左斜杠。在测试的开始时,文件将被创建并且增长,直到磁盘是被填满。
(注意:如果系统产生的磁盘I/O数非常大,那么,Iometer或Windows也许会停止、挂掉或崩溃。“very large”的确切值取决于磁盘驱动程序和可以利用的物理内存数。这个问题归结于在Windows和一些磁盘驱动程序的局限性,并且不是Iometer软件的问题。)
4.5 Network Targets tab - 络目标选项
络目标选项允许你监测和控制当前在拓扑结构面板上已选择的 络服务器所使用的 络界面。
如果 络客户端在拓扑结构面板上被选择, 络目标选项显示client的配置,但是你不可能改变它(client的配置总是相同于它的服务器)。
4.6 Access Specifications tab -存储规格选项
存储规格选项让你控制I/O worker执行它已选择目标的类型。每个已命名的存储规格控制以下内容:
nbsp; 指定大小的传输百分比。
nbsp; 读写百分比。
nbsp; 随机或连续存取的百分比。
nbsp; 突发传输。
nbsp; 突发延迟。
nbsp; I/O磁盘队列。
nbsp; 如果有回复,每个I/O请求的回复大小。
可以选择多个存取规格,进行多个测试。
4.6.1 各选项介绍
4.7 Results Display tab –结果显示选项
当运行测试时,结果显示选项显示性能统计。当测试运行时,你可以改变结果显示选项的所有控制设置。这些改变将立刻生效。
(注意:a.获得运行时间统计表影响系统性能。当运行一个重要的测试系列时,应该把更新频率设置成无穷大。并且,你应该小心不移动鼠标或进行后台处理,避免多余的CPU被利用和中断。b.当测试 络I/O时,a manager或者“All Managers”的总的I/O IOps 和MBps值包括 络服务器和相应的 络客户端。)
4.8 Test Setup tab -测试设置选项
测试设置选项控制在存储规格表里已选存储规格运行测试的选项。
4.9 保存和打开测试配置文件
4.9.1 Save Test Configuration File -保存测试配置文件
按工具栏里保存测试配置文件按钮,出现保存测试配置文件对话栏。你可以选择想保存在文件里的一些设置,如测试设置选项设置、结果显示选项设置、整个存储规格、managers和Workers等。
Iometer不提示你保存你对测试设置所做的任何变动,你必须通过按工具栏里保存测试配置文件按钮,来保存测试配置文件。
4.9.2 Open Test Configuration File -打开测试配置文件
按工具栏里打开测试配置文件按钮,出现打开测试配置文件对话栏。你可以选择设置还原被保存的文档,并且你可以重新设置或合并当前设置。
Replace/merge不适用测试设置选项和结果显示选项。这些设置,当被恢复时,总是会替换当前设置。
5 性能指标
本章主要讲述在结果显示页签中各个性能指标的含义。
- Total I/Os per Second(IOPS):每秒I/O次数,包含读I/O和写I/O。对于磁盘来说,一次磁头的连续读或者连续写就是一次I/O。
- Read I/Os per Second:每秒读I/O次数。
- Write I/Os per Second:每秒写I/O次数。
- Transaction per Second:每秒事务处理数。当在存取规则中设置Reply Size为”no reply”时,Transaction per Second=IOPS,即事务只包含发送数据块;当在存取规则中设置了Reply
- Connections per Second:每秒连接数。
- Total MBs per Second:每秒数据传输量,也就是常说的吞吐量,包含读取和写入。Total MBs per Second=IOPS*传输数据块大小= Transaction per Second*(传输数据块+接收数据块)
- Read MBs per Second:每秒读取数据量。
- Write MBs per Second:每秒写入数据量。
- Average I/O Response Time(ms):平均I/O响应时间。
- Avg.Read Response Time(ms):平均读I/O响应时间。
- Avg.Write Response Time(ms):平均写I/O响应时间。
- Avg. Transaction Time(ms):平均事务处理时间。
- Avg. Connections Time(ms):平均连接时间。
- Maximum I/O Response Time(ms):最大I/O响应时间。
- Max.Read Response Time(ms):最大读I/O响应时间。
- Max.Write Response Time(ms):最大写I/O响应时间。
- Max. Transaction Time(ms):最大事务处理时间。
- Max. Connections Time(ms):最大连接时间。
- %CPU Utilization(total):CPU占用率。
- %User Time:非内核级应用程序占用时间。
- %Privileged Time:CPU内核程序占用时间,是在特权模式下处理线程执行代码所花时间的百分比
- %DPC Time:处理器在 络处理上消耗的时间。%DPC Time是%Privileged Time的一部分。
- %Interrupt Time:中断时间是在采样间隔期间接收和处理硬件中断处理器花费的时间百分比,如系统时钟,鼠标,磁盘驱动器,数据通信线路, 络接口卡和其它外围设备。
- Interrupts per Second:每秒中断数。
- CPU Effectiveness:CPU效率的一个表征:将IOPS除以%CPU Utilization即可得到。
- Network Packets per Second:每秒 络数据包发送/接收数。
- Packets Errors:错误包个数。
- TCP Segments Retrans.per Sec:TCP数据段每秒返回数。
- Total Error Count:总错误数。
- Read Error Count:读取错误数。
- Write Error Count:写入错误数。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!