这时,如果我们已经具有了 SQL Server 2000 SP4 对延迟 I/O 操作进行报告的功能,那么我们在疑难解答过程中就可以很快知道基本问题是什么。
示例 3 — 隐藏的错误
很多高端系统具有用于处理负载平衡的多通道 I/O 路径以及类似的工具。Microsoft SQL Server 技术支持部门已经见过使用此类软件的情况,其中,尽管 I/O 请求失败,但软件确实正确地处理了错误状况,并且执行了无数次重试。I/O 被阻塞,并且 SQL Server 无法完成指定的操作。与上面描述的日志写状况非常类似,在这样的状况对系统产生了消极影响之后,发生了很多糟糕的系统行为。
解决办法:在类似情况下,重新启动 SQL Server 可以在一定程度上缓解问题,但是,有时需要重新启动 Windows 来使处理恢复到正常状态。当然,I/O 子系统中的程序错误最终需要由 I/O 供应商解决。
SQL Server 2000 SP4 的新的对此类状况进行自动报告的功能使得类似问题的检测变得更加容易。我们不仅可以看到整个服务器的总体性能下降,而且还可以通过 SP4 所记录的新消息洞察问题的本质,并且知道该问题很可能出在 SQL Server 外部。
示例 4 — 远程存储/镜像/RAID 驱动器
很多系统使用镜像或类似的技术来帮助防止丢失数据。其中一些系统是基于软件的,而其他系统是基于硬件的。Microsoft SQL Server 技术支持部门经常遇到的与这些系统有关的情况是延迟增加。
当针对镜像的 I/O 必须在 I/O 操作被视为完成之前成功完成时,这显然会增加总体 I/O 时间。对于远程镜像安装,网络延迟和重试可能成为一个不利因素。当发生驱动器故障并且 RAID 子系统重新生成时,I/O 吞吐量可能会受到影响。
解决办法:在类似情况下,我们通常建议使用严格的配置设置(这随供应商和设备而异),以减少镜像延迟和 RAID 重新生成操作。
RAID 系统开销和延迟可能导致 I/O 变慢,而 SQL Server 对此无能为力。就像任何其他应用程序一样,它是 RAID 硬件和驱动程序的客户端。当该类型的问题使服务器的速度过度降低时,SP4 中新的延迟和阻塞 I/O 报告功能有助于查明问题所在。
示例 5 — 压缩
Microsoft 不在压缩驱动器上支持 SQL Server 7.0 或 2000 数据和日志文件。NTFS 压缩是不安全的,这不仅是因为它破坏了预写日志 (WAL) 协议,而且还因为它要求对每个 I/O 请求执行更多的处理。压缩禁止了异步 I/O,从而导致所有带有受影响数据或日志文件的 SQL Server I/O 都被同步执行。
上一页 [1] [2] [3] [4] [5] [6] 下一页
- 相关新闻
- 用户评论
- 推广服务
Rss订阅
