今天在测试中发现,Redhat中的小size random IO性能特别差。测试中测试了两个Redhat版本:AS 3 Update 6和AS4 Update2,同时测试了本地硬盘和光纤存储,小size random IO性能实在是太差。IOmeter测试的结果显示单线程4KB 100% random IO的性能才只有几百KB。 有人知道为什么吗? 我想我基本明白了原因。 IO size = 4KB,所以每一个I/O,只有一块硬盘在发挥作用。因此IOPS就受限于单块硬盘的性能。而单块硬盘的性能可以做如下的分析: 146G的10KRPM硬盘,比如seagate的,参数如下(link):
  1. Full Disc Seek, Read 9.5 msec typical
  2. Full Disc Seek, Write 10.3 msec typical
  3. Average Latency 3 msec
所以,在最坏情况下,每一次读Cache都会失效,都需要从硬盘重新读数据。一次最长时间的Seek需要大约13ms,这样IOPS = 1000 / 13 = 77。Bandwidth = 76 * 4 = 307 KB/S。