等待统计 - ASYNC_IO_COMPLETION 上的等待时间较长
-
29-09-2020 - |
题
我目前正在查看我的等待统计数据。我遵循了以下解释的最佳实践 保罗·兰德尔 并浏览他引用的文件。
查看我现在每天一次从所有生产服务器获取的统计数据片段,我发现 Avg_Wait_S 的值非常高,这意味着总等待秒数除以 WaitCounts 的关系。与所有其他等待类型(最低)相比,等待计数的值非常低,但在我的每台服务器上,此类型的 AvgWait_S 介于 120 - 2493 秒之间!这看起来等待时间很长。
我读到这无论如何都可能是由备份引起的。但我想知道这是否是一种“正常”值?如何获得更多有关它的详细信息?
这是我的等待统计数据的示例结果集:
WAITTYPE Wait_S Resource_S Signal_S WaitCount Percentage AvgWait_S AvgRes_S AvgSig_S
BACKUPIO 46151.80 45093.07 1058.74 22819151 26.55 0.0020 0.0020 0.0000
CXPACKET 45057.81 27926.59 17131.22 20387211 25.92 0.0022 0.0014 0.0008
BACKUPBUFFER 16658.83 15867.71 791.12 8993341 9.58 0.0019 0.0018 0.0001
PAGEIOLATCH_SH 15326.95 15284.65 42.30 2131848 8.82 0.0072 0.0072 0.0000
ASYNC_IO_COMPLETION 14203.17 14203.17 0.00 9 8.17 1578.1303 1578.1303 0.0000
WRITELOG 8570.20 8377.81 192.39 2136964 4.93 0.0040 0.0039 0.0001
PAGEIOLATCH_EX 7691.32 7673.31 18.01 1777069 4.43 0.0043 0.0043 0.0000
SOS_SCHEDULER_YIELD 4548.90 43.44 4505.47 13294384 2.62 0.0003 0.0000 0.0003
LCK_M_S 3018.76 3018.06 0.71 1704 1.74 1.7716 1.7712 0.0004
ASYNC_NETWORK_IO 2678.83 2147.78 531.05 4372825 1.54 0.0006 0.0005 0.0001
LCK_M_SCH_S 2612.09 2612.08 0.01 37 1.50 70.5971 70.5968 0.0003
解决方案
如上所述
与所有其他等待类型相比,等待计数的值非常低(最低)
计数只有 9,即在收集一整天的等待统计数据期间,等待只出现了 9 次,这对我来说不会是一个问题。
但是,值得检查其他等待类型 BACKUPIO
和 BACKUPBUFFER
.
当您通过网络(网络连接不佳)或在磁带等(即磁带等)上进行备份时,通常会出现这种等待类型。任何其他速度极慢的备份系统)
我们在其中一台 SQL Server 2005 上进行了类似的等待,以备份大小约为 200 GB 的数据库。由于尺寸很大,而且我们当时没有可用的压缩功能,因此需要等待很多时间。我们不得不使用第三方压缩工具,并看到这些等待类型的数量正在减少。所以我相信,如果您开始检查备份,这可能是一个好的开始。确保使用 SQL Server 压缩功能来备份数据库。
然而,为了检查此等待类型是否导致任何问题,您需要检查备份吞吐量是否存在任何问题。
也许您可以通过在同一网络上与其他网络进行比较来进行本机备份来测试备份,并检查其他计数器值。
另外,你可以参考一下 长时间 ASYNC_IO_COMPLETION 等待的原因 保罗对此等待的更多解释。