iometer测试磁盘IO性能
of Outstanding I/Os per target – 被选中worker的每个磁盘一次所允许的未处理的异步I/O的数量。模拟测试多个应用向 IO 请求读写,默认是 1。通常不用这个参数,除非是用在 NAS/SAN 上面。此参数和”Test Setup”面板上的Cycling Options 有关。(注意:如果操作完成的非常快,磁盘实际看到的队列深度可能更少,默认值是1)举个例子:假设选中了一个Manager,选中8个disk,指定# of Outstanding I/O of =16,磁盘被分布到各个worker(每个worker分到2个disk),每个worker对其下的每一个disk生成最大16个未处理I/O,那么整个系统中该Manager每次将生成最多128个未处理I/O(4 worker * 2disk/worker * 16未处理I/O/disk)。
Test Setup 面板
Run Time:
设置测试运行时间
Ramp Up Time:
一些高级的 RAID 系统通常会有一块 RAM 当做 IOcache,为避免开始得到的数据来自于这些cache,系统会将这个参数设置的时间不列入最后的性能计算,以便得到真正的 IO值
特定应用测试:
(1) 文件服务器
transfer request size为64 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为80%读 20%写。
(2) Web 服务器
transfer request size为512 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为100%读。
(3) 在线交易OLTP
transfer request size为8 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为67%读%33%写。
下面介绍Test Setup tab下的Cycling Options,理解它有助于构建复杂的测试环境,满足对不同场景的需求。
有以下测试类型可供选择,为了简单起见,每个测试用例都将假设所有的对象数量起始值为1,步进类型为线性,步进值是1。
Normal – run all selected targets for all workers: 本测试类型只采用所有对象数量的默认值运行一个测试:所有manager的所有worker都是活动的,所有选中的target将被每一个worker使用,每个磁盘的未处理I/O由Disk Targets tab中的“# of Outstanding I/Os”字段指定。
此测试类型可用于快速测试当前系统配置,它也是默认测试类型。
Cycle Targets – add step targets for all workers at a time
本测试类型将为每一个测试中的每一个worker增加target数量。测试数量由每个worker的target数量的最大值决定。例如,每个worker有三个target,那么本测试类型将运行三个测试:
- 所有worker使用一个target(第一个选中的target)
- 所有worker使用两个target(前两个选中的target)
- 所有worker使用三个target(所有三个target)
这种测试可用于几种不同的场合,例如:
l 为来自不同适配器卡的磁盘分配worker,从而观察在将工作量分布到其他适配器卡之后的系统可伸缩性(scalability)
l 将worker指派给同一个磁盘,观察递增的传输请求队列
l 将worker置于单独的系统,观察一个共享总线的伸缩效果
Cycle Workers – add step workers using all selected targets at a time
本测试类型为每一个测试中的每一个manager增加worker的数量。测试的数量是由每个manager的worker数量的最大值来决定的。例如,如果每个manager有三个worker,本测试将运行三个测试:
- 所有manager使用一个worker(第一个选中的worker)
- 所有manager使用两个worker(前两个选中的worker)
- 所有manager使用三个worker(所有三个worker)
该测试可用于以下场合:
l 如果这些worker位于单独的系统,允许测试共享总线
l 为分布在不同适配器上的磁盘指派worker,观察同一个系统上负载严重的适配器卡的interaction
l 为同一个磁盘指派worker,观察增加请求队列的结果
Increment Targets Parallel – add step targets to all mangers at a time.
本测试类型增加每一个测试的每一个Manager的target数量,分发给该manager的worker。测试数量由【每个worker的target数量的最大值】与【每个manager的worker数量的最大值】的乘积决定。例如,如果每个manager有两个worker,每个worker有两个target,那么本测试类型将运行四个测试:
本测试类型可用于确定一次性从所有客户端增加服务器负载的影响。
Increment Targets Serial – Add step targets at a time
本测试类型增加每一个测试中所有Manager的target总数,并分发给每一个manager的worker。测试数量由【manager的数量】、【每个manager的worker数量的最大值】以及【每个worker的target数量的最大值】的乘积决定。例如,如果每个manager有两个worker,每个worker有两个target,本测试类型将运行八个测试:
本测试类型可用于确定来自许多客户端到服务器的总负载增加量的影响。
Cycle Targets and Workers – add step targets at a time spread across workers
本测试类型将为每一个测试中的一个worker增加target数量,然后重新开始为每一个测试中的两个worker增加target数量,以此类推。测试数量由【每个manager的worker数量的最大值】与【每个worker的target数量的最大值】的乘积决定的。例如,如果每个manager有三个worker,每个worker有两个target,那么该测试类型将运行六个测试:
该测试类型可用于总线和网络的可伸缩性的特征化。
Cycle #Outstanding I/O – run step outstanding I/Os on all disks at a time.
为每一个测试的每一个磁盘worker的每一个磁盘增加未处理I/O的数量(对于网络worker,该值总是1)。测试数量由# of Outstanding I/O参数决定。例如,如果# of Outstanding I/O参数的终止(End)值为4,本测试类型将运行四次。
- 所有worker对所有选中的target上的每一个target使用1个未处理I/O
- 所有worker对所有选中的target上的每一个target使用2个未处理I/O
- 所有worker对所有选中的target上的每一个target使用3个未处理I/O
- 所有worker对所有选中的target上的每一个target使用4个未处理I/O
需要注意的是,每个target所接收到的未处理I/O总量是每个worker的未处理I/O数量与使用该target的worker数量的乘积。
Cycle #Outstanding I/O and Targets – run step outstanding I/Oson step targets at a time.
本测试类型为所有worker的一个target增加未处理I/O的数量,然后为所有worker增加target数量。例如,如果每个worker有两个target,# of Outstanding I/O End = 3,该测试类型将运行六次:
- 所有worker对1个target使用1个未处理I/O
- 所有worker对1个target使用2个未处理I/O
- 所有worker对1个target使用3个未处理I/O
- 所有worker对2个target上的每一个target使用1个未处理I/O
- 所有worker对2个target上的每一个target使用2个未处理I/O
- 所有worker对2个target上的每一个target使用3个未处理I/O
Workers – 用于为“Cycle Workers“和”Cycle Targets and workers“测试类型确定初始worker的数量、步进大小、步进类型(线性或指数),其它所有测试类型都忽略该控制字段(文本框将是灰掉的)。
Targets – 用于为“Cycle Targets“、”Increment Targets Parallel“、”Increment Targets Serial”、”Cycle Targets and Workers”和“Cycle # Outstanding I/Os and Targets”测试类型确定初始target的数量、步进大小、步进类型(线性或指数),其它所有测试类型都忽略该控制字段。默认起始值 = 1,步进值 = 1,线性步进类型。
# of Outstanding I/Os – 用于为“Cycle # Outstanding I/Os”和“Cycle # Outstanding I/Os and Targets”确定未处理I/O的起始和最终数量,步进值和步进类型。对于以上两种测试类型,它会覆盖Disk Targets tab中的# of Outstanding I/Os字段,所有其它测试类型都忽略该控制字段。默认起始值 = 1,最终值 = 32,power base = 2,指数步进类型。网络worker忽略该字段,它的# Outstanding I/Os总是1。