我正在使用Sql Server 2008(“R1”),以及一些将我的数据库备份到networking共享的维护计划。 我的一些备份作业显示“BACKUPIO”types的长时间等待。
当然,这似乎是一个I / O子系统的限制,但我很怀疑。 生产(源)服务器上的I / O的Perfmon统计数据完全在该服务器的正常趋势范围内。 目标服务器显示持续7MB / s的写入速率,即使对于慢速磁盘,写入速率也似乎非常低。 networking链路是千兆以太网,远不及饱和。
关于BACKUPIO的几个文档表明,它并不是专门在I / O上等待,这足够令人惊讶。 这MSFT文件说,这是不正常的,除非你使用的磁带驱动器,我不是。 但是没有说(或者我不明白)究竟是什么资源缺失。 http://www.docstoc.com/docs/24580659/Performance-Tuning-in-SQL-Server-2005
而这篇文章说这根本不涉及I / O性能。 http://www.informit.com/articles/article.aspx?p=686168&seqNum=5 “请注意,BACKUPIO和IO_AUDIT_MUTEX与IO性能无关。”
无论如何,有谁知道什么BACKUPIO实际上意味着和/或我能做些什么来诊断或消除它?
更新:我在目标磁盘上显示100%+磁盘时间,这听起来像磁盘瓶颈而不是networking。 这是一个单转子7200RPM,但我仍然怀疑7MB / s是最好的磁盘可以做的。
通过networking共享进行备份会将所有networking延迟时间显示为“BACKUPIO”等待时间。 你的问题不太可能在SQL堆栈中,你必须检查你的networking堆栈,更确切地说是SMB堆栈。 Windows 7,Windows Server 2008和Wk28 R2在networking堆栈中发生了重大变化,有些已知会导致某些高带宽/高延迟情况下的传输速率变慢,特别是当新的接收窗口自动调整。
有关详细信息,请参阅Windows Vista / Windows Server 2008和Windows XP / Windows Server 2003之间的networking性能差异