我一直在与 DBA 和几个硬件人员争论我们 SQL 服务器上的性能问题。通常一切都很好,但是在过去的几周里,我们在 sql server 中遇到了巨大的滞后峰值。很明显,SQL Server 正在等待磁盘 I/O。但是我一直被告知这是因为 SQL Server 要求异常高的 I/O。事实并非如此。从运行中可以看出没有任何异常,所有DBA关心的只是导致阻塞的原因等等,这是无用的。例如,我们看到备份的主要内容是对 ASPState 数据库的操作,我们使用它来管理 Web 服务器上的 ASP 会话状态。这些操作通常不会出现在 Sp_who2 活动结果上,因为它们发生得如此之快。数据库处于简单恢复模式,日志记录很少。然而,在这些延迟高峰期间,我们可以看到数据库上的大量选择和更新操作被阻塞或等待。我确信正在发生的事情是某人或某项工作正在运行导致用于该数据库日志和数据文件的 RAID 阵列上大量磁盘使用的东西。问题是要证明这一点,因为没有人愿意承认他们正在做一些正在扼杀我们网站的事情。
我的问题是什么性能计数器或我可以记录的任何内容将有助于显示 SQL Server 正在等待 I/O,但不是因为它要求比正常情况更多,而是因为磁盘忙于响应来自 sql server 的请求像往常一样快吗?