在众多固态硬盘测试工具当中,IOMeter在玩家群体中的知名度并不算很高,但却是SSD专业评测必不可少的测试工具。IOMeter最初是由英特尔研发的,现在已经成为开源的免费软件。相比FIO,它具备GUI图形界面、相对更易于使用,但全英文界面和大量的设置选项往往会让初学者知难而退。
测试目标设置:
IOMeter打开后的第一个界面是Disk Targets,即测试目标,在这里可以选择要测试的硬盘盘符。右侧Maximum Disk Size是IOMeter将要生成的测试文件大小,所有测试都在测试文件范围内进行,下方# of Outstanding I/Os设置队列深度|QD),Write IO Data Pattern设置写入数据模型(可选全零/伪随机/全随机,Pseudo random伪随机能够避免主控压缩造成的成绩偏差,也具有比Full random更高的稳定性)。
本次测试使用了8GB范围、QD32队列深度、随机数据模型。NVMe协议可支持64K队列深度,适当提升QD即可充分发挥固态硬盘的并发读写优势。
测试项目设置:
接下来切换到第三个选项卡Access Specifications,这里定义将要测试的项目。IOMeter提供了一些预设文件,不过多数时候还是点击右侧的New按钮自己创建灵活的测试方案。
接下来编辑测试项目的窗口中包括了太多需要介绍的内容,已经无法直接在图中注释,我们一一来介绍:①设置测试项目名称,②是测试成分列表,在这里可以揉入多种不同类型的测试方案,可以同时包括不同区块大小③、不同读写比例④、不同随机和顺序存取比例⑤乃至于不同的对齐位置⑥。这里我们设定了使用128KB区块,100%顺序读取,4K对齐。
⑦还可以指定一个数据爆发策略,在指定Burst Length个I/O活动后暂停指定的毫秒数。⑧则允许模拟一种响应回传存取,比如当前测试读取,则自动在读取完成后紧跟着执行一个指定区块大小的写入。大家应该已经发现,IOMeter中这许多的功能都是其他简易测试软件所不能提供的!
测试设定:
让我们跳过Result Display,首先来看居于末尾的Test Setup中都有哪些设置选项。图中标注①的位置可以填写本次测试的名称,这一名称会被写入到测试日志当中,方便日后管理。位置②设置每一项测试的运行持续时间,可以在小时|Hour)、分钟(Minutes)和秒(Seconds)中填入所需数字。
③定义了循环测试选项,默认是运行Access Specifications任务列表中的各项测试,但也可以通过下拉菜单选择递增测试线程(Workers)数量,或者是递增测试盘目标|Targets)的序号,又或者是递增要测试的队列深度(#of Outstanding I/Os)设定(线性提高或翻倍增长)
结果显示:
在完成以上设定后我们回到Result Display选项卡,勾选Record last update results to file,这样IOMeter就会每秒记录测试数据,并写入到测试日志文件当中。
当然,要开动测试,还需要我们动手点击一下IOMeter界面中的绿色小旗帜,就会弹出Save Result对话框,确认测试结果文件的存储位置以及文件名。测试结果可以通过Excel打开,并进行整理和制图。
当然,对于相对简单的测试,我们可以跳过结果文件分析,直接通过IOMeter的Result Display界面进行确认。在Display框中从上到下依次是IOPS|每秒输出输出次数)、存储带宽(读取和写入合并)、平均存取延迟(单位毫秒)、最大存取延迟(单位毫秒)、CPU占用率(百分比)和总错误计数(正常应保持为0)。这些项目也可以通过点击来更改其他显示内容。
在今天的例子中我们用IOMeter测试了固态硬盘的顺序读取性能,它的顺序读取速度为3485.54MBPS。
PCIE 3.0 x4接口固态硬盘在实践中面临3500MBPS的接口速率限制,可以在IOMeter界面中的Range参数中输入3500,这样一来我们就得到一张完美的顺序读取测试“定妆照”:
顺序读取测速只是IOMeter的基本功能