如何计算磁盘子系统I / O容量

我正在试图找出磁盘子系统的8K页I / O容量的数量。 驱动器是SATA 7200 RPM – 4个驱动器在RAID-5configuration。 我不确定SCSI控制器,但服务器大约5年。

你需要知道的另一件事情是顺序与随机I / O请求的比率。 这可能会影响I / O操作速度。 对于旋转媒体,100%随机请求是I / O操作的下限,100%顺序是上限。

另外,由于您将使用RAID5,读/写百分比也会影响I / O操作。 这可以很大程度上受到你的RAID卡的影响,所以除了“写入速度会比读取速度慢”之外,并没有太多硬性的快速经验法则,甚至可以通过RAID卡上的智能caching来破坏。

在某些时候,7.2K RPM驱动器将达到I / O饱和,不过在处理大量写入操作之前,RAID卡可能会达到CPU饱和。

唯一可以肯定的方法就是testing。 正如埃文所说,iometer有一个长期的logging。 我也用iozone效果很好。 它不像iometer那样先进,但使用起来更简单一些。

我是Iometer的忠实粉丝。 它没有重大更新,而是在最近 公布的 基准testing中使用 ,这让我对它的数字有信心。

我用sysbench完成了这种testing。 我所做的是创build一个比系统内存大几倍的大testing文件,并且只testing随机IO写入。 这应该给你一个有用的最坏情况度量。 我会在这个testing中做所有的testing。 真实世界的性能应该比由于caching和读写stream量以及任何进行顺序IO的任何组合都要好。 我肯定会优化IOPS,因为我发现IO瓶颈比空间问题更难修复。

如果你有机会,我会考虑重新configuration你的4磁盘RAID 5成RAID 10,因为这应该通常会提供更好的写IO性能。 你可以用两种方法来testing你的硬件在两种情况下的性能。

我的经验法则是,7.2K驱动器可以增加大约150 IOPS,10K大约200和15K高达250,尽pipe这可能有点乐观。 每个镜像都会为读取添加IOPS,每个条带为写入添加IOPS。 因此,例如一个4磁盘RAID 10与7.2K磁盘可以给你高达300 IOPS的写最坏的情况,但没有更多。 RAID 5估计起来比较复杂,因为根据写入数据的数量以及实现中的快捷方式或优化,RAID 5可能是可变的。 在正常情况下,在64k条带上写8k最终将导致4个磁盘RAID上的IOPS,3个IOPS读取每个条带,每个条带被更新以及奇偶校验条带。 我发现在RAID 5上写入IOPS大约是RAID 10中相同数量的磁盘的一半,因此您的4个磁盘RAID 5可能具有150 IOPS的随机写入IO的最坏情况,并不比单个磁盘好。