编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Iometer磁盘性能测试指南(磁盘性能测试软件)

wxchong 2024-07-17 04:35:53 开源技术 6 ℃ 0 评论

1. Iometer简介

Iometer是一个可用于单个或者是机群磁盘子系统的测试工具。

Iometer既是一个负载的产生工具,也是一个性能的测试工具。它可以按照设置好的参数产生负载,也可以检查和记录测试的结果。

Iometer包括两个部分,即Iometer主程序和Dynamo程序,其中Iometer主程序是一个控制平台,它提供了一个图形界面,可以实现参数的设置,开始或者停止测试,收集和整理数据,这里需要注意的是,在一个平台上只允许有一个主程序存在。

Dynamo是一个负载发生器,它不具备图形界面,在主程序的控制下,可以产生负载并进行记录,并向主程序返回测试结果,可以同时存在几份Dynamo。Dynamo是多线程的,每一个副本可以模拟一个多Client系统中的负载。Dynamo的副本叫做Manager,每个Dynamo的线程叫做一个Worker。

本文介绍了Iometer的各个功能模块常规使用方法,更结合了我们实际的测试

2. Iometer安装

www.Iometer.org网站下载对应平台的Iometer版本,并进行安装。以windows平台为标准。

2.1 启动

请打开程序中的Iometer.exe,此时会弹出一个Iometer主程序和一个Dynamo程序。



图1 Iometer界面

2.2 Toolbar –工具栏


图2 工具栏

工具栏为共同的命令提供按钮,要执行这些命令中的任一个,便点击此按钮。下面将为每个按钮的简要说明。按钮执行的功能如下:

Open Test Configuration File:打开已经编辑好的配置脚本文件。

Save Test Configuration File:保存测试配置文件。

Start New Manager:开始运行一个新的客户端Manager,也就是dynamo的副本。

Start Disk Worker:在拓扑结构面板上选择Manager,开始新的磁盘Worker。

Start Network Worker:在拓扑结构面板上选择Manager,开始网络服务器Worker。

Duplicate Selected Worker:复制已选择的Worker,在同一个Manager。

Start Tests:开始测试,开始一系列的测试,文档提示保存在测试结果中。

Stop Current Test and Save Results:中止当前的测试并保存结果。

Abort All Tests:中止当前运行的所有测试,不保存测试结果。

Reset Workers:重新设置Worker。

Disconnect Selected Worker or Manager:中止已选择的Worker 或Manager。

Exit:退出,中止Iometer和所有连接Dynamo程序。

About Iometer:显示Iometer版本和版权信息。

当拓扑结构面板里没有managers时,除了打开、保存、开始新的Manager、退出按钮外, 其他按钮都是灰色的;当运行一个测试时,除了停止、中断、退出按钮外,其他按钮都是灰色的;当没有测试运行时,停止和中断按钮是灰色的。

2.3 Topology –拓扑窗口


图3 拓扑窗口

位于左下部,这里可以得到Manager和Workers的信息。

拓扑结构面板显示当前活动的管理器(Dynamo)和线程(Worker)的分级表。

? 点击Worker,Manager,或All Managers,去查看和修改他的磁盘目标、网络目标和存储规格等选项的设置。

a. 如果你点击一个Worker,可以使用这个Worker上的磁盘目标、网络目标和存储规格选项,可以修改当前设置,所有改变将被应用于这个Worker上。

b. 如果你点击一个Manager,上面分布一系列的适合Manager的磁盘目标和网络目标选项,可以修改这些选项,(当Manager上所有的Worker设置相同时,将显示这些数值;反之,Worker的数值不同时,将显示灰白色。)所有改变将被应用于这个Manager的Worker上。

c. 如果你点击“All Managers”,没有目标在磁盘目标或网络目标选项显示,因为Managers的目标列表也许是不同的。对他们进行适合类型的相同的修改,这些目标数值将被显示,所有改变将被应用于所有Manager上的所有Worker上。


2.4 环境参数设置窗口

1) Disk Targets 选项


4 Disk Targets选项

其中Target窗口会显示系统中所有的物理磁盘和逻辑磁盘,如物理磁盘已经分区,那么只显示分区后的逻辑磁盘。需要测试的磁盘在这里选择。

右边的参数解释如下:

Maximum Disk Size:此参数决定了测试中使用多少个磁盘sector(扇区),默认的值为0,表示使用所选磁盘Target的所有空间,即磁盘大小未被分割。

Starting Disk Size:此参数决定了测试从磁盘的哪个sector开始,一般设置为0。设置在测试期间使用的开始磁盘区(0区段=物理磁盘或iobw.tst文件起点。)

一般的硬盘 sector 大小为 512bytes (sector 为硬盘最小储存单位) ,如果这边是使用默认值0时,写入所有该磁盘的所有扇区(Sector);如果你想测是固定大小时可以透过设定 Maximum Disk Size 与 Starting Disk Sector ,如设定 Maximum Disk Size 为 100 就会写入数据 100 *512 bytes 大小的数据,而 Starting Disk Sector 可以指定由哪一个 sector 开始写入。

#of Outstanding I/Os:表示在同一时间一个或者多个worker向被测磁盘发出的异步i/o的最大数目,实际的序列深度由被测磁盘的参数决定。应用NAS / SAN 上。在 "Test Setup / Cycling Options" 选项中 Cycle # Outstanding I/Os 即是以此方式逐步增加同时 I/O 的读写,1,2,4,8..预设以2的等比级数增加。相关说明请参阅4) Test Setup选项。

Test Connection Rate:指定每张盘是否能在测试期间反复地被打开和关闭,设置事物迭代数。

2) Access Specifications选项



图5 Access Specifications选项

此窗口决定需要测试的项目,其中一个项目的主要参数是random/sequential,Read/Write,data block size(数据块大小)。右边的New,Edit,Edit Copy,Delete四个参数可以对脚本进行修改。

使用时,请将所需要进行的项目从右边窗口Add到左边窗口即可。

也可以自己编辑


图6 Edit Access Specification 编辑项

编辑存储规格对话让你查看和改变存储规格的定义。

Name:存储规格的名字。

Default Assignment:当他们被创建时,那些workers自动地被分配这个存储。

Size栏:定义一行或多行I/O执行方式。

Transfer Request Size:当前行的传输请求“大小”,最大值:1023 MB、1023 KB、1023 Bytes。

Percent of Access Specification:设置当前行的存储百分数,所有行的存储百分数加在一起必须是100%。

Percent Read/Write Distrbution:设置当前行读写的百分数,每个操作都是任意选则一个“读写百分数”去读取。

Percent Random/Sequential Distrbution:设置当前行顺序随机百分数。

Burstiness:设置当前行的延迟时间,以毫秒为单位。(Delay=0连续运算)

Align I/Os on:设置列队,确定每个I/O在磁盘上的列队的多少。

Reply Size:设置回复,确定回复数,请求和回复一起组成一种交易。

3) Result Display选项


图7 Result Display选项

此窗口可以及时显示测试结果,Update Frequency可以调整结果刷新的时间间隔,最短可以设置为1s。其中能够显示的结果包括了:Total IO per cecond(每秒IO数),Total MBs per Second(带宽),Average IO response time(平均IO延迟),Maxmum IO response time(最大IO延迟)Cpu utlization(CPU使用率),以及Total error count(传输错误数)。

Start of Test:我们在进行 iometer 时,可能测试时间为十分钟但每一秒的结果皆不同。这里显示出从一开始到目前为止所平均出来的值,这值会和保存的 csv 结果一致。
Last Update:显示的结果为单位时间内的平均值。假如设的 Update Frequency 为5秒,显示的就是这5秒的平均值。这2个只能选择1种。

Update Frequency(second):指定在几秒内,显示统计表被更新。单位为秒(seconds),默认∞(无穷大),意味着显示统计表仅在每次测试结束后被更新。

测试结果主要看这两项。

Total I/O per Second:每秒 I/O 数的平均值。这和Access Specifications设定的Transfer Request Size相关。通常愈大值就越小,越小值越大。

Total MBs per Second:每秒可以传送的数据量,单位为MB。要得到较好的Total MBs per Second 需要将Transfer Request Size 设定大一点。把Sequential和Read 设定为 100%。

总结几点:


 Total I/Os per Second:数据存取速度,该值越大越好。

 Total MBs per Second:数据传输速度,该值越大越好。

 Average I/O Response Time:平均响应时间,该值越小越好。

 CPU Utilization:CPU占用率,越低越好。

IOmeter中的参数之间的关系

? IOPS×blocksize / 1024= bandwidth(throughout)

? number of worker ×number of outstanding IO ×1000 / IOPS = Average I/O Response Time (ms)

4) Test Setup选项



图8 Test Setup选项

此窗口可以设置测试时使用的参数。

Test Description:测试描述,添加上你对当前测试系列喜欢的描述,这些文字被保存到结果文件里。

Run Time:为系列里的每个测试指定运行时间,“0”意味着每次测试运行,直到你按停止键来停止此次测试。

Ramp Up Time:在每次测试开始记录统计表之前设置Iometer等待时间。一些比较高级的 RAID 系统通常会有一块 RAM or SSD 当作 I/O 高速缓存的时候,为避免一开始所得到的值是来自于这些高速缓存,系统会将 # Ramp Up Time 所设定的时间不列入计算中。以便得到真正 I/O 的值。

Record Results:指定信息被录制在结果文件里,每个worker的结果是它的目标总述;每个manager的结果是它的workers的总述;all managers的结果是所有managers的总述。如果你选择“None,”在测试开始时,将不会提示你输入测试结果文件。

Number of Workers to Spawn Aulomatically:创建manager时,指定workers数量给这个manager。

Cycling Options:指定为每个存取规格运行测试的系列。循环选项可以被用于自动地为当前测试配置在一个种类不同负载量上收集数据。

Workers:指定初始worker数,列队和分级类型为测试类型“Workers周期”和“目标和Workers周期”。

Targets:指定目标的最初值,列队和分级类型为测试类型“目标周期”,“相应地增加目标”,“连续地增加目标”,“目标和Workers周期”和“outstandingI/Os和目标周期”。

Of Outstanding I/Os:指定outstanding I/Os的最初值和最终值,列队和分级类型为测试类型“Outstanding I/Os周期”,“Outstanding I/Os和目标周期”,这些测试类型在磁盘选项表上忽略Outstanding I/Os。

在 Disk Targets 前面有介绍过 # of Outstanding IO:主要是在仿真测试同时多个应用程序向I/O 请求读写,默认值是1。一般是不会用到这个项目。除非是用在NAS / SAN上面。不过这边是固定数目的 I/O 请求读写,在 "Test Setup / Cycling Options" 选项中 Cycle # Outstanding I/Os 可以用等比(1,2,4,8..预设以2的等比级数增加)或是等差(1,2,4,6,8...预设以2的等差级数增加)方式逐步增加同时 I/O 的读写。作用在模拟真实环境当使用增多时 I/O 读写是否会受到影响。可用于 NAS 环境测试。

Cycle # Outstanding I/Os 有两种方式。

1> Cycle # Outstanding I/Os -- run step outstanding I/Os on all disks at a time。


图9 Cycle # Outstanding I/Os 方式一

假若我们设定成等比,并将End 设定为 4,Iometer 或逐步(1,2,4.预设以2的等比级数增加) 同时 I/O 的读写,在这选项中会针对所有的 Disk 同时存取。

All workers use 1 outstanding I/O per target on all selected targets.

All workers use 2 outstanding I/Os per target on all selected targets.

All workers use 4 outstanding I/Os per target on all selected targets.

2> Cycle # Outstanding I/Os and Targets -- run step outstanding I/Os on step targets at a time。


图10 Cycle # Outstanding I/Os 方式二

假若我们设定成等差,并将# of Outstanding I/Os control group / End 设定为4,

Iometer逐步(1,2,4.预设以2的等差级数增加) 同时 I/O 的读写。在这选项中只会针对单一的 Disk 存取。所以当你指定 Target Disk 为两颗时需要执行 3*2 =6 次的测试.

All workers use 1 outstanding I/O per target on 1 target.

All workers use 2 outstanding I/Os per target on 1 target.

All workers use 4 outstanding I/Os per target on 1 target.

All workers use 1 outstanding I/O per target on 2 targets.

All workers use 2 outstanding I/Os per target on 2 targets.

All workers use 4 outstanding I/Os per target on 2 target

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表