From : http://blog.sina.com.cn/s/blog_59e866610100dkx5.html
现在硬盘越来越大了,在目前接触的服务器中不难发现320G,500G的,1T的,但是容量见长,转速却不见长,这其实导致了一个很大的问题,那就是货物越来越重,但是马力却停滞不前,结果硬盘的很多性能却反不如同样转速的小硬盘了。今天学到了一个I/O测试软件,iometer,呵呵,据说是测试I/O子系统一个很牛的工具,下面是我个人的总结:
1、创建目标磁盘
这步很重要。运行程序后弹出的界面,有一个Disk Targets标签,在下面的Targets框中会列出磁盘驱动器,蓝色的图标代表物理驱动器,他们只有在上面没有分区时才出现。黄色图标代表逻辑驱动器(挂载上去的),他们只有在可写时才出现。带红色反斜杠的黄色图标的意思是:测试之前,该驱动需要准备好。选择好要测试的磁盘,然后在右边的Maximum Disk Size中填上要创建的磁盘目标大小,如果不填,默认将耗尽所有可用的空间。建议尽可能的大一些,最小5GB。注意,那个栏是以扇区为单位,所以至少10000000个扇区以上。
2、配置工作线程
就是在Maximum Disk Size选项的下面第二个,默认是每次发出一个I/O,对于同时有多人访问的系统存储,最好设置4到6个,可以根据需要调整。对于自己用的桌面机默认就行,也可以适当增加。
3、创建或修改访问定义(访问脚本)
这个在标签Access Specifications下,该标签下有两个文本框,左边的是你选择的访问定义,右边的是程序提供的已经定义好的定义。
可以点击"new"新建一个,新建的不做任何变动的话(就是点击"new",然后在弹出的对话框中除了定义名字外,其他都保持默认),创建的是67%读和33%写的2KB的随机I/O,据说这是代表了典型的数据库负载。对于联机系统来说,事先要先确定好大致的随机访问百分比(绝大部分都是随机访问)和读写百分比,比如Sql Server数据库,可以用windows系统的perfmon工具先确定读写百分比。
(1)对于SQL Server的I/O系统,有人是推荐8KB块大小,80%——90%的随机访问和75%——90%的读写比例。
(2)最大的I/O速率(每秒钟的I/O操作),将传输需求大小(Transfer Request Size)调整为512比特,将读/写分配百分比调整为100%读,并且将随机/顺序分配百分比调整为100%顺序。
(3)最大的吞吐量(每秒几MB)将传输需求大小调整为64K,将读/写分配百分比调整为100%读,并且将随机/顺序分配百分比调整为100%顺序。
(4)文件服务器:测试读取尺寸从512Bytes到64KB不等,80%读取操作,随机率为100%,用于模拟文件服务器的性能。
(5)网页服务器:测试读取尺寸从512Bytes到512KB不等,100%读取操作,随机率为100%,用于模拟Web服务器的性能。
(6)在实际的桌面环境中,小于4KB的块访问数量不少,但是由于操作系统的缓存的存在而具有一定的降低,主要的块大小基于4KB。
4、运行测试
根据需要尽可能长的运行测试
5、评价结果
结果中说明了吞吐量、延迟时间(滞后时间)和读写速率等,对于分析I/O性能,判断I/O瓶颈及规模计算和容量规划很有用。
可以对自己机器的硬盘测试看看哈。
这是我的测试,4KB块大小,67% read and 33% write,100%随机。点击结果(蓝色栏右边的箭头可以出来图形显示),自己研究下哈!
参考:http://blog.pconline.com.cn/article/204710.html
http://network.pconline.com.cn/pingce/0708/1094354_3.html
http://net.zdnet.com.cn/network_security_zone/2008/1120/1243456.shtml