conveys-brendan
初识
Iometer
介绍
Iometer
是一款用于单系统和集群系统的
I/O
p>
子系统度量(
measurement
)和
特征化
(
characterization
< br>)工具,它是一个负载生成器(
workload generator
),也是一个度量工具
(
measuremen
t tool
),可用于模拟任何程序或
benchmark<
/p>
的磁盘或网络
I/O
操作,
在单个或
多个(联网)系统上生成并度量负载
更多信息
Iometer
简介
Iometer
由两个程序组成,
Iometer
p>
和
Dynamo
。
Iomter
是控制程序
/GUI
,<
/p>
它告诉
Dynamo
需要做什么,收集数
据结果并总结到一个输出文件。一次只应该运行一个
Iometer
,通常运
行在服务器上。
Dynamo
是一个负载生成器,它没有
GUI
,在
Iometer
的命令下执行
I/O
操
作并记录性能信息,然后返回数据给
Iometer
。一次可以运行多个
Dynamo
,通常是一
个副
本运行在服务器上,另一个副本运行在每一台客户端上。
D
ynamo
是多线程的,每一个副本
可以模拟多个客户端程序的
工作(
workload
),每一个正在运行的
Dynamo
副本被称为是一
个
Manager
,
Dynamo
中的
每一个线程被称为
worker
。
<
/p>
双击
运行
Iom
eter
,出现
Iometer GUI
(如下图所示),
同时会在本地系统上
启动
< br>Dynamo
的一个副本。
双击一个
.icf
设置文件、
将
icf
p>
或
.txt
文件拖拽到
也能
启动
Iometer
,并且加载配置信息。命令行启动方式形如:
c:iometer
p>
。如果需要
在其他机器上启动
Dynamo
,
将机器名作为
Iometer
的命令行参数,
例如
c:dynamo
IOServer
。
如果
Iometer
和
Dy
namo
在单个系统上运行,那么是不需要网络支持的,否则就需要配
< br>置
TCP/IP
网络。不需要在任何一台机器上启动多于
一个的
Dynamo
的副本,要增加
w
orker
的数量,使用
Iometer
启动其他
worker
线程即可。
蓝色图标的
Targets
代表物理驱
动器(图中并没有物理驱动器),只有当物理驱动器上
没有任何逻辑分区时才会被显示出
来。黄色图标代表逻辑(已挂载,
mounted
)驱动器,只
有当它们为可写(
writable
)
时会被显示出来。黄色图标带有红色斜杠代表该驱动器在测试
开始之前,需要先做准备(
prepare
)。单击选中一个或多个(
shift
)磁盘来做测试,被选中
的磁盘将自动分发给<
/p>
Manager
的
worker
。
对逻辑驱动器的访问是通过对文件
的写入来完成的,如果该文件不存在,驱动
器图
标上会有一条红色斜杠,在测试开始之前,该文件会被创建并占满整个磁盘空间。
快速开始测试磁盘性能
1.
双击
<
/p>
,
Iometer
主窗口出现并自动运行
一个
Dynamo
负载生成器
2.
在
Io
meter
窗口的左侧的拓扑面板点击一个
Manager
p>
,
你会在
Disk Targets
tab
中看到
可用的磁盘驱动器。
3.
在
Disk Targets
tab
中,选择一个或多个磁盘
4.
切换到
Access Specifications
tab
,
在
Global
Access Specifications
列表中双击
“<
/p>
Default
“,出现”
Edit
Access Specification
“对话框。
5.
Edit Access Sp
ecification
对话框告诉你磁盘将如何被访问,
默认
是
2KB
随机
I/O
< br>,
67%
读
+33%
写,代表典型的数据库负载。你可以就使用默认设置或对其进行更改。点击
OK
关
闭对话框。
6.
为了获得最大吞吐量(
MB/s
),尝试更改
Transfer
Request Size = 64KB
,
Percent
Read/Write Distribution = 100%
Read
,
Percent
Random/Sequential Distribution = 100%
Sequential.
7.
p>
为了获得最大的
I/O
速率
(
IOPS
)
,
尝试更改
Transfer Request Size =
512Bytes
,
Percent
Read/Write Distribution = 100%
Read
,
Percent
Random/Sequential Distribution = 100%
Sequential
。
8.
切换到
Results Display
tab
,设置
Update Frequency =
10
秒。
9.
点击
Start Tests
按钮(绿
色旗帜),一个标准的文件保存对话框出现,选择一个文
件用以保存测试结果(默认是<
/p>
)
10.
10
秒钟之后,第一个测试结果显示在
Results Display tab
并每隔
10
秒更新一次。点
击每个
bar
左侧的
chart
p>
可以选择你想要的显示结果,你也可以将一个
worker
或
manager
拖
拽
到一个
bar chart
上来查看某一个
worker
或
manager
的
结果。
11.
点击
Stop Test
按钮
(
Stop
标志)
,<
/p>
测试将停止,
结果会被保存在
文件中,
这是一个逗号分隔的文本文件,可以用任何文本编辑器查看或导入
电子表格。
测试两台计算机之间的网络性能(
A
和
B
)
1.
在
computer-a
上,双击
2.
在
co
mputer-b
上,打开一个
cmd
并执行
C:dynamo computer-a
3.
在
co
mputer-a
上,
你将看到
com
puter-b
作为一个新的
manager
< br>出现在
Topology
面板,
点击它可以观察到其磁盘驱动器将出现在
Disk Targets tab
4.
选中
c
omputer-b
,点击
Start Network Wo
rker
按钮(网线图示)早
computer-b
上创建
一个网络服务器。
5.
切换到
Network Targets tab
,
从列表中选择
computer-a
的一个接口,
这将在
computer-a
上创建一个客户端并将客户端和服务器连接在一起。
6.
切换到
Access Specifications
tab
,
在
Global
Access Specifications
列表中双击
“<
/p>
Default
“,出现”
Edit
Access
Specification
“对话框,指定
Transfer
Request Size = 512Bytes
,点击
OK
。
7.
切换到
Results Display
tab
,设置
Update Frequency =
10
秒。
8.
点击
Start Tests
按钮(绿
色旗帜)并选择一个文件用于保存结果。如果指定一个现
有的文件,新的结果会被附加在
已有结果后面。
9.
观察结果后,点击
Stop
Test
按钮停止测试并将结果保存到文件。
详解“
Disk Target
Tab
”
介绍
上一次我们简单介绍了
Iometer
的组成部分以及如何
快速使用
Iometer
做性能测试,
这次我们将详细介绍
Iometer
图形界面中的“磁盘目标选
项卡”。
更多信息
拓扑面板的
“Disk Target
tab”
拓扑面板显示当
前活动
Manager
(
Dynamo
s
)和
Worker
(线程)的一个层
级列表。
点击一个
worker
、
p>
manager
、或
All
Manager
可以在
Disk
Targets
,
Network
Targets
和
Access
Specification tab
中查看并修改其设置。<
/p>
默认,
manager
的名称和其所在机
器的名字是一样的,
Worker
的名字是“
< br>Worker n
”,可以通过单击选中的
manage
r
或
worker
来修改名字。
”All
Manager”
的名字是不可更改的。
点击某个
worker
,被选中的
t
argets
(磁盘或网络接口)将由该
worker
使用,其他的
设置显示了当前该
worker<
/p>
的设置,任何更改仅针对该
worker
。
点击某个
manager
,被选中的
targets
将以轮询的方式分发给该
manager
下的所
有
worker
。
Disk
Targets
,
Network
Targets
和
Access Specification
tab
显示了该
manager
下所有
worker
的
公共设置
。如果所有
worker
的设置参数都相等,那么设
置项会显示某一个值,否
则将是空白的(说明该
manager
下的
worker
对该参数的设置不同
),任何参数的更改会被
应用到该
manager
下的所有
worker
。
点击
All Manage
r
不会显示任何
target
,因为<
/p>
manager
的
target
列表可能是不同的。
其他设置显示了所有
wor
ker
的公共参数,任何更改都会被应用到所有
worker<
/p>
。
Disk Targets tab
允许查看并控制当前选中的
worker
所使用的磁盘。
单击或<
/p>
shift-
单击
选择任意数量的驱动器
供已选
worker
在测试时使用。
P
hysical
驱动器以蓝色图标显示,
名称
< br>是“
PHYSICALDRIVEn
”(仅当它们不包含
任何信息,除了空闲空间)。
Worker
直接读写
raw disk
来访问物理驱动器,而非使用
<
/p>
文件。推荐用
Physical
驱动器进
行测试。
Worker<
/p>
通过读写
文件来访问逻辑驱动器,如果该
文件不存在,驱动器的图
标会有一条红色的斜线。
在测试开始的
时候,
系统会被创建该文件并扩容直至磁盘空间撑满
(该过程会
在状态栏显示“
Preparing
Drives
”)。当然,可以通过设置
Maximum
Disk Size
来设置该文件的大小,从而控制
Iomet
er
使用的磁盘空间。如果该文件存在但是不可写,那
么该驱动
器被认为是只读的,而且根本不会被显示出来。
Maximum Disk Size
–
表示已选
worker
所允许测试的
sector
数量。默认值是
0
,代
表整个磁盘或
文件。如果指定一个非零值,
Iome
ter
使用指定数量的
512-Bytes
的扇
区,(从
Starting Disk Sector
开始)。如果指定的值超过了磁盘或文件的范围,该值会被忽
略
并使用默认值
0
。举个例子:
Star
ting Disk Sector = 5
,
Maximum
Disk Size = 10
,被选中的
worker
会使用磁盘或文件
的
sector 5-14
。
Iometer
使用
Maximum
Disk Size + Starting Disk Sector
的加法和来控制
文件
的上限大小并以此大小来创建文件
。
如果该文件已经存在了,
更改该值并不能
resize
。
如果两个
wor
ker
被分配给同一个
unprepared
< br>逻辑驱动器,那么第一个
worker
的
Maximum
Disk Size + Starting Disk
Sector
的加法和会生效。
Starting Disk Sector
-
起始磁盘扇区(
0=
物理磁盘或
< br>
文件的开始),指定
lowest-numbered
disk sector
,默认是
0
,
即磁盘或
文件的首个
512-byte
扇区。
# of Outstanding I/Os per
target
–
< br>被选中
worker
的每个磁盘一次所允许的未处理的<
/p>
异步
I/O
的数量。
(注意:如果操作完成的非常快,磁盘实际看到的队列深度可能更少,默
认值是
p>
1
)
举个例子:
假
设选中了一个
Manager
,
选中<
/p>
8
个
Disk
,
指定
# of Outstanding I/O of
p>
=16
,磁盘被分布到咯咯
worker<
/p>
(每个
worker
分到
2
个
disk
),每个
worker
对其下的每一
个
disk
生成最大
16
个未处
理
I/O
,那么整个系统中该
Mana
ger
每次将生成最多
128
个未处<
/p>
理
I/O
(
4
worker * 2disk/worker * 16
未处理
I/O/disk
)。
注意
:
如果系统中未处理
I/O
< br>的数量非常大,
Iometer
或
Windows
会
hang
、
thrash
或
crash
< br>。
这里所谓的”
非常大
“究竟是
多少取决于磁盘驱动程序和可用的内存数量。
这个问题是由于
W
indows
和某些磁盘驱动程序的限制,并不是
Iomete
r
的问题。
Iometer
允许你设置
未处理
I/O
的数量,而其他应用程序未必,所以其他应用程序
对此问题并不常见。
Test Connection Rate
:控制
worker
多久打开和关闭磁盘一次。默认是
O
ff
,表示所
有磁盘在测试开始的时候就是打开的,并在测试结
束后被关闭。如果
Test Connection Rate
是打开的,
worker
会在测试开始的时候打开其所有的磁盘
,当指定数量的事务在某个磁盘
上执行完毕后,该磁盘就会被关闭,并在下一个
I/O
达到磁盘之前被重新打开(
re-ope
n
),
事务数量可以是
0
,
意味着
worker
仅仅
重复打开及关闭磁盘。
事务是指一个
I/O
请求及其响
应,是否有响应取决于
Edit Access
Specification
对话框中的“
Reply Siz
e
”设定。每个“打
开
+
事务
+
关闭”的序列被称为一个连接(
Connection
),系统会为每个连接记录从打开到关
闭所用的时间,系统会报告最大连接时间、平均连接时间以及每秒平均连接数。
详解“
Access Specifications
Tab
”
介绍
Access Specifications tab
允许用
户控制每一个
worker
对其选中的
target
所执行的
I/O
类型。<
/p>
该
Tab
下主要包括
Global Access Specification
和
Assigned
Access Specifications
列表以
及一些按
钮,我们将详细介绍它们的意义和使用方法。
更多信息
Global Access
Specifications
和
Assigned
Access Specifications
列表
Global Access Specifications
列表列出了当前定义的所有访问规则(
Access
Spec
ification
)
,一个访问规则可以指定一种类型的
p>
I/O
或多种类型的混合
I/O
。
Assigned
Access Speci
fications
列表显示了当前指派给选中的
worker
的访问规则,可以通过选中一个
或多个访问规则并点击
Add
按钮将其指派给
worker
。每个访问规则由
名称
和
图标
组成,名
称由用户定义,最好是能清楚的描述该访问规则的
形态。图标指定了访问规则的
Default
Assignm
ent
,它决定了创建一个
worker
后会自动分配哪一个访问规则给它。一共有
4
种
Default Assignment
:
All
Workers
、
Disk
Workers
、
Network Workers
以及
None
。
在
Assigned Access Specificati
ons
列表中,
每一个访问规则左侧的
LED
(带有颜色的
圆圈)表示在测试时该访问规则所处的状态
:
?
蓝色:访问规则尚未运行
?
绿色:正在运行的访问规则
?
红色:运行完毕的访问规则
如果
Assigned Access Specificat
ions
列表中有多个访问规则,
Iometer
会执行一个系列
测试(
series of tes
ts
)
,访问规则将从上至下顺序执行,执行每一个访问规则期
间,
Iometer
运行一个或多个测试
(由
Test Setup tab
的设置决定)
,
如果
Test Setup tab
没有指定运行时间,
每个测试会一直运行直到你按了工具栏上的
Stop
按钮为止。
可以分配不同的访问规则
给不同的
worker
,
例如,
让磁盘
worker
执行类似数据库的
I/O
,同时让网络
worker
执行类似
web-server
的
I/O
(分别用不同的访问规则定义)
。如果列
表中存在多个访问规则,所有
worker
会
同时执行它们的首个访问规则,然后执行第二个,
等等。如果每一个
worker
的访问规则数量不同,拥有少量访问规则的
w
orker
在其他拥有较
多访问规则的
worker
依然在工作的时候将处于空闲状态。你可以分配一个
空闲访问规则
来
强制让一个
work
er
在其他
worker
正在工作的时
候处于空闲状态。
单个访问规则可以多次指派给同一个
worker
。例如,如果有两个
worker
(
1
和
2
)
以及两个访问规则(
A
和
B
)
,可以把访问规则
A
和
B
指派给
worker1
,为
worker2
指派访
问规则
A
的两个副本。
这种情况下将运行两个测试:在一个测试中,两个
worker
都将运行
访问规则
A
,在第二个测试中
,
worker1
运行访问规则
B
p>
,同时
worker2
再次运行访问规则<
/p>
A
。
如果在
< br>Topology
面板选中了一个
manager
或“
All
Managers
”
,
Assigned Access
Specifications
列表将是空的,除非该
manager
或“
All Managers
”的
worker
都采用相同的访
问规则列表。在选中了某个
ma
nager
或“
All Managers
”的情况下对此列表进行更改,那么
这种更改会被指派给该
manager
或“
All Managers
”下的所有
worker
。
点击
New
将弹出
Edit
Access Specification
对话框,
用于创建
一个新的访问规则,
它
显示了访问规则的定义并且允许对其进行
修改。
每个访问规则可以由多个
I/O
形态组成,
每
个
I/O
形态由
Size
、
%Acce
ss
、
%Read
、
< br>%Random
、
Delay
、
Burst
、
Alignment
p>
、
Reply
字段构
成,显示
在中间的表格内,每一行都是一个
I/O
形态。下面,我们将
介绍其中的每一个字段
的含义:
Transfer Request
Size
–
指定每个
I/O
请求的读写字节的大小,
默认是
2KB
,
取值范围
是
1
字节(
0MB+0
KB+1Byte
)到差不多
1GB
(
1023MB+1023KB+1023Byte
)
,仅受限于可
用的虚拟内存。
Percent of
Access Specification
–
指定每一种
I/O
形态
(
Edit
Access Specification
对话框
中间表格内
的每一行)
所占一个访问规则的
I/O
百分比。
默认是
100%
,
取值范围是
1%-100%
,
增量为
1%
。如果一个访问规则有多行(多个
I/O
形态)
,每一行的
%
Access
字段决定了该行
控制的
I
/O
操作的执行几率,这些几率是
%Read
< br>和
%Random
字段的几率结合后的结果。每
一行的
%Access
字段的加法和必须等于<
/p>
100%
,每一行的执行顺序是随机的,但随着测试时
间的推移,访问规则中的每一行必然会以指定的几率执行。
注意
:<
/p>
访问规则越复杂,
需要运行测试的时间足够久才能确保随机选择操
作会尽可能的
与所配置的百分比相当。
Percent
Read/Write Distribution
–
指定读写操作的比例。
(对于网络
worker
,写操作
是
发送
,读操作是
接收
。当相应的服务器在“写”的时候,网络客户端总是“读”
,反之亦<
/p>
然)
。
例如,
指
定
%read = 40%
,
那么一个
I/O
有
40%
的可能性是
“读”
,
60%
的可能是
“写”
。
这意
味着读和写是随机的,但随着访问规则的执行,总的来看,
Iometer
会平均执行
40%
读
和
p>
60%
写(
2
:<
/p>
3
的读写比例)
Percent
Random/Sequential Distribution
–
指定随机访问率(默认是
100%
)
。例
如,<
/p>
%Random = 60%
表示一个
I
/O
有
60%
的机会是访问一个随机地
址,
40%
的机会访问一个
顺序地址。
这个值对于网络
worker
是忽略的。
小提示
:
要以顺序的方式访问磁盘,
选中该磁盘并指派一个
worker
,
设置
#
of outstanding
I/Os
=1
。
Burstiness Length
–
指定每个爆发的连续执行的
I/O
数量,可以输入任何非
0
值,默
认是
1
。如果
Reply
字段为非
0
,这里指的就是
事务
数量(请求
+<
/p>
响应)
,而不是
I/O
< br>数量。
Transfer
Delay
–
指定在每一个
I/O
操作的爆发之前的延迟,默认是
0
,可以指定任何
非负值,单位是毫秒(
p>
1000 = 1
秒)
。如果值为
0
,
Burst Length
是没意义的,因为在爆发之
间没有任何延迟。
Align I/O On
–
指定每一个磁盘
< br>I/O
的对齐,默认是“扇区边界”
。如果该字段的值是
n
字节,则每一个
I/O
会在磁盘的
n
倍字节处开始执行。取值范围从
1
到
1023MB+1023KB+1023
Bytes
,
但指定的值必须是磁盘扇区大小的倍数。
指定
0
值或选择
“扇<
/p>
区边界“单选按钮会使得
I/O
在扇区边
界对齐。网络
worker
忽略该值。
注意
:<
/p>
如果
Alignment
字段不是”
p>
扇区边界
“且
Size
字段并非
Alignment
字段值的倍数,
那么连续
I/O
将不会是真正的连续。例如,如果<
/p>
Size =
3KB
,
Alignment =
2KB
,那么每个
3KB I/O
在其
下一个
I/O
之前会有一个
1KB
p>
的”洞“。例如,假设扇区是
1KB
大小,
那么
I/O
落到磁盘上的视图就是
DD
DXDDDXDDDX….
(
D
代表<
/p>
1KB
数据,
X
代表为了对其而
浪费的
1KB
空间)<
/p>
Reply Size
–
指定对每一个
I/O
请求的响应大小,默认是
No Reply
。取值范围是
1Byte
到
1023MB+1023KB+1023Bytes
,仅受限于可用的虚拟内存。<
/p>
0
值或选择
No
Reply
代表没有
响应。
如果
Reply
字段为非
0
值,
一旦一个
I/O
请
求完成,
会立刻返回一个响应,
即
“读
”
请求会得到“写”响应,或“写”请求得到一个
”
读
”
响应(个人理解:涉及底层设备
I/O
处
理,源发起“读”之后,接收方必然要把内
容写回发起者的内存、硬盘等位置才能最后被源
读取;而写请求也必然要求接收方先读取
原先地址的内容才能进行写操作)
。请求的大小由
Size
p>
字段指定,响应的大小由
Reply
字段指
定,请求与响应一同被称为一个
事务
。每个事务
的请求从发起到响应完成所用的时间、
最大和平均事务时间、
< br>每秒平均事务量都会被记录并
报告。
< br>如果指定了
Reply
,
Rep
ly
的方向(读或写)总是请求的反方向,同时它的对齐和随机
/
连续等设置与对应的请求是一致的。如果指定了
Bursti
ness
,
Burst
字段指定的是事
务(请求
+
响应)数量,而非
I/O<
/p>
数量。
详解
“Results Display
Tab”
介绍
Results
Display Tab
显示了一个运行过程中的测试的性能统计信息,
你可以选择所要
显示的统计信息、涉及的
Manage
r
或
Worker
以及显示更新的频率
。下面,我们将做详细介
绍。
更多信息
下图是
Results Display tab
的截图,同样有很多选项可以修改,在测试运行过程中,
你可以更改
Results Display Tab
中的所有设置,
且更改将立刻生效。
Results Display Tab
的设
置不会影响启动系列测试时所指定的的
结果文件
,
结果文件是在每一次
测试结束
时被更新的,
包括每个
worker
和
manager
测试统计信息的最终结果
p>
(除非在
Test Setup
tab
中指定了
Record
Res
ults
)。仅当所有的
worker
线程跑起来之后,
Iometer
才会记录
worker
的数据。
conveys-brendan
conveys-brendan
conveys-brendan
conveys-brendan
conveys-brendan
conveys-brendan
conveys-brendan
conveys-brendan
-
上一篇:初一七年级动点问题专题讲解(10个题目)
下一篇:英语四级高频词汇汇总版