对技术细节不感兴趣的可以略过此节。
IOMeter是业界广泛使用的IO性能测试软件,我们使用了2004.07.30.win32.i386版本来完成磁盘子系统性能的测试,并使用定制的Excel宏来完成数据分析。
通过使用不同的IOMeter设定值来呈现文件服务器(选择范围为512Bytes到64KB)和网站服务器(选择512Bytes到512KB作为I/O范围)的相应负载,文件服务器和网站服务器的脚本都按照于StorageReview.com的脚本来进行,StorageReview.com通过对各种文件服务器和网站服务器的实际运行进行统计分析制定了业界广泛使用的测试脚本。连续性操作的设值为64KB,因为这是NT核心操作系统所使用的限定数值,更大的数据包将会被操作系统分割为64KB执行。
最后,我们实际测试使用的IOMeter策略如下:
Max IO:
为了得到完整的磁盘性能数据,我们测试了从512Bytes到64KBytes的8种数据块大小,并分别测试了100%读取操作以及100%写入操作下的表现,测试随机率为0%,即为100%连续读取,用于检测磁盘子系统的最大输入输出能力。从所有的数据中,可以分别得到的数据指IOps(每秒操作数)以及MBps(传输速率)。
File Server:
文件服务器应用在一个多用户或网络化的环境中专门用于文件的储存,恢复和管理。不同用户的访问形成了多线程,因此,其工作负载是随机性的。输入输出大小是可变的,取决于所操作的文件大小。读/写分布也是变化的。总的来说,一个频繁使用的多用户服务器应该采用较高的队列深度来模拟。
最后,测试读取尺寸从512Bytes到64KB不等,80%读取操作,随机率为100%,用于模拟文件服务器的性能。
Web Server:
网站服务器应用于处理多用户通过Internet或Intranet进行的访问。这些请求具有典型的随机性,并且在用户访问不同页面或视频应用时大量偏向于读请求。同样,一个访问频繁网站服务器也应该采用较高的队列深度来模拟。最后,测试读取尺寸从512Bytes到512KB不等,100%读取操作,随机率为100%,用于模拟Web服务器的性能。
在实际的桌面环境中,小于4KB的块访问数量不少,但是由于操作系统的缓存的存在而具有一定的降低,主要的块大小基于4KB。在文件服务器环境中,512B、4KB、64KB的块都比较多,其中4KB的占了绝大部分,而在网站服务器环境则主要是8K以下的块大小。
SCSI标准中的TCQ(Tagged Command Queuing)支持高达256的Queue Depth(队列深度),按照企业级硬盘的标准IOMeter测试的Queue Depth一般都用128或者256,但是在桌面应用中,Queue Depth通常不会大于128,通常为64左右;作为SCSI TCQ技术的一个简化的版本,SATA的NCQ(Native Command Queuing,本地指令队列)支持32的Queue Depth,因此我们测试时,队列深度从1到128。我们仅仅使用了一个Worker。
IOMeter硬盘性能测试对CPU、内存等参数并不是很敏感——当然CPU要保证在测试中不能出现100%的占用率。