1、Topology/Workers:
默认情况下,iometer根据机器的CPU个数生产相对于的worker。
Worker的数量取决于当前机器上的CPU核心数(我的CPU是2600K,4核8线程,所以有8个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:
A、Maximum Disk Size
一般的机械硬盘sector(扇区)大小为512字节(扇区为硬盘最小存储单位)。
如果这里使用默认的0时,意思就是写满这块硬盘的所有扇区。
如果你想测的是固定大小时,可以透过设置Maximum Disk Size这个参数来达到。输入1000就代表会在测试前生成一个大小为1000X512字节的iobw.tst测试文件。
Windows系统每个扇区的大小是512Byte,所以这里填20000000就是指Worker 1会占用某盘10GB的空间,另外在做FCSAN/IPSAN磁盘测试时设置的大小推荐大于SAN设备缓存的2倍,太小的话Iometer只跑在缓存上,跑出来的性能会偏高不准确。但是从里一个方面来说,如果我们想让最终的结果看起来好看,那么我们可以将该参数设置的小一点,根据测试目的自己把握吧);
如果你设置的Maximun Disk Size数字比当前磁盘系统的缓冲区小的话,测试成绩很可能是缓冲区性能,速度会爆高,所以适当设大点吧。
在Iometer开始对磁盘进行访问时会先生成一个文件iobw.tst其大小决定于“Max Disk Size”。如Max Disk Size =10000,则生成5M的文件。如果Max Disk Size =0,
则生成一个占满全磁盘的文件。这个动作在Iometer“开启-关闭”过程中只做一次。之后如果删除这个文件,再对其进行顺序写操作时,发现文件只是指定用于访问磁盘的数据块的大小;如果此时是对磁盘进行随机读或写,那么Iometer出错;如果设置对磁盘进行顺序读,Iometer此时不会对磁盘进行读操作。即此时只有顺序写操作有效。
Iometer运行后,使用64K的数据块对本机磁盘进行顺序写,此时带宽为36.5,IOPS为584.0,停止Iometer,删除已生成的文件,再次启动Iometer,此时IOPS一下就升到了1650左右,带宽也变成103左右。
Iometer使用Maximum Disk Size + Starting Disk Sector的加法和来控制iobw.tst文件的上限大小并以此大小来创建文件。如果该文件已经存在了,更改该值并不能resize iobw.tst。如果两个worker被分配给同一个unprepared逻辑驱动器,那么第一个worker的Maximum Disk Size + Starting Disk Sector的加法和会生效。
B、Starting Disk Sector
指的是由硬盘的第几个扇区开始写入。即Worker1 从哪个扇区开始写它的iobw.tst测试文件,这里保持默认的0即可。
如果Starting Disk Sector是5而Maximum Disk Sizes 是10那么Iometer将对磁盘的5-12扇区进行访问
C、 of Outstanding I/O
指的是同时发送的IO请求(聪明人知道这个就是体现NCQ的作用了),预设值是1,一般家用测试不会去修改这个项目的,只有厂家秀分数做广告时会去改成32来跑最大IOPS忽悠用户。
指的是Worker 1在D盘上同时会开多少个异步的IO操作,在主机的CPU、内存能力够强时,并发数越多最终跑出来的结果会越准确,默认的是1个。 具体设置为多少比较好,我们可以实际试一下:先跑1个,看看Result是多少,5个时Result是多少,10个、20个、50个、100个、120个…… 在CPU内存承受范围内,找到一个最合适的值。
of Outstanding I/O被选中worker的每个磁盘一次所允许的未处理的异步I/O的数量。(注意:如果操作完成的非常快,磁盘实际看到的队列深度可能更少,默认值是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)。
注意:如果系统中未处理I/O的数量非常大,Iometer或Windows会hang、thrash或crash。这里所谓的”非常大“究竟是多少取决于磁盘驱动程序和可用的内存数量。这个问题是由于Windows和某些磁盘驱动程序的限制,并不是Iometer的问题。Iometer允许你设置未处理I/O的数量,而其他应用程序未必,所以其他应用程序对此问题并不常见。
D、Test Connection Rate
指的是Worker 1以什么样的操作频率频率打开、关闭D盘。默认不勾选的意思是,所有的连接都是open状态,直到测试停止。这里我们保持默认即可。
默认是关闭意思是所有磁盘都是在开始访问时开启。在结束访问时关闭。一般来讲磁盘从“打开-访问的IO数-关闭”这个过程称为一个连接。如果开启这个值,并指定了一个数,意思就是Iometer在开始访问磁盘时打开磁盘,发起这个数量的IO后就会关闭磁盘然后重新打开磁盘、执行IO„„周而复始。
Test Connection Rate控制worker多久打开和关闭磁盘一次。默认是Off,表示所有磁盘在测试开始的时候就是打开的,并在测试结束后被关闭。如果Test Connection Rate是打开的,worker会在测试开始的时候打开其所有的磁盘,当指定数量的事务在某个磁盘上执行完毕后,该磁盘就会被关闭,并在下一个I/O达到磁盘之前被重新打开(re-open),事务数量可以是0,意味着worker仅仅重复打开及关闭磁盘。事务是指一个I/O请求及其响应,是否有响应取决于Edit Access Specification对话框中的“Reply Size”设定。每个“打开+事务+关闭”的序列被称为一个连接(Connection),系统会为每个连接记录从打开到关闭所用的时间,系统会报告最大连接时间、平均连接时间以及每秒平均连接数。
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控制器,相当于每次只需要更新随机数据的索引部分即可,还是能够压缩部分数据。)