SQL Server 2005的高I / O有多高?

我有一个RAID 1设置,平均每个磁盘40 – 60个I / O和0.5个平均磁盘队列长度。 根据BOL下面的例子 ,这不是一个瓶颈。

磁盘读取/秒80
磁盘写入/秒70
平均。 磁盘队列长度5

在这种情况下,每个磁盘遇到(80 +(2 * 70))/ 2 = 110个I / O,而您的磁盘队列长度= 5/2 = 2.5,表示边界线I / O瓶颈。

这使我想到高I / O有多高? 平均磁盘队列长度是相当有据可查的,每个CPU不应该超过2个,但是BOL没有提到每个磁盘的I / O?

快速说明…“平均磁盘队列长度有很好的logging,因为它不应该超过每个CPU 2”应该是“平均磁盘队列长度有很好的logging,它不应该超过每个主轴2”,但是常识并不是一成不变的。

有关此主题的更多信息,请访问Microsoft SQL支持小组: http : //blogs.msdn.com/psssql/archive/2007/02/21/sql-server-urban-legends-discussed.aspx

当我读到你的问题时,你想知道一个硬盘有多lessIOPS(IO每秒)。 答案是“当你有更多的驱动器支持”。 一个15K的希捷猎豹支持比5400 RPM的笔记本电脑驱动器更多的IOPS。 在您的情况下,您将驱动器设置为RAID 1(增加了冗余,但是在您将相同的数据写入两次时减less了可用的IOPS)。

由Wikipedia( http://en.wikipedia.org/wiki/IOPS )提供,一些标准的数字:

  • 7200RPM SATA驱动器 – 〜90 IOPS
  • 10kRPM串行连接SCSI驱动器 – 〜140 IOPS
  • 15kRPM串行连接SCSI驱动器 – 〜180 IOPS
  • 简单的SLC SSD – 〜400 IOPS
  • 英特尔X-25 M(MLC;截至2009年3月[更新],没有竞争) – 约1500 IOPS
  • 英特尔X-25 E(SLC;截至2009年3月[更新],没有竞争) – 约5000 IOPS(英特尔的数据表中说3,300写,35,000读IOPS,而5000是混合测量)
  • 带闪存的PCI-Express卡ioDrive – > 80,000 IOPS
  • DDRdrive X1,2009年5月基于PCI Express的固态硬盘 – 300,000+(512B随机读取IOPS)和200,000+(512B随机写入IOPS)
  • 小提琴内存设备,1,000,000+随机读取IOPS

磁盘读/写数据本身不会(对我而言)具有定义的特定高I / O的意义,因为硬件的进步会使得这些事情在短期内过时。 关键在于寻找造成延迟的原因,而不是简单地指出什么可能是无害但频繁的磁盘活动。

这是关于SQL Server硬件瓶颈的一篇不错的文章

您的磁盘制造商应提供有关您可以处理的IOPS种类的信息。 与磁盘队列一样重要的是sec / read和sec / write – 持续超过15-20ms的内容可能会受到伤害。