jon*_*lds 8 sql-server sql-server-2012 availability-groups
在我们所有的 AlwaysOn 设置中,在虚拟机和裸机上运行 Windows 2012 和 SQL Server 2012,我发现 log_send_rate
sys.dm_hadr_database_replica_states
始终返回不正确的值。
例如(对于同步模式)
sys.dm_hadr_database_replica_states.log_send_rate(ave = 36,571(以 bol 列出的 kb/s))
Perfmon - SQLServer:可用性副本 - 发送到副本的字节数/秒(最大值 = 486,000.000,平均 = 259,000.000)
Perfmon - SQLServer:Databases - Log Bytes Flushed/sec (max = 653,044.000, avg = 341,000.000)
我没有看到任何关于此的帖子,但它似乎无法正常工作。正确的log_send_rate
值对于监视 AlwaysOn 很有用。
有没有其他人经历过这种情况?
小智 0
我一直在查看 log_send_rate 值,作为对我们在生产环境之一中遇到的延迟问题进行故障排除的一部分。
\n\n我已向 Microsoft 提出他们对该字段的定义是错误的,如此处所述 ( http://technet.microsoft.com/en-us/library/ff877972(v=sql.110).aspx )。\n"Rate日志记录发送到辅助数据库的时间,以千字节 (KB)/秒为单位。”
\n\n我认为我下面的定义更好。它是...\n\xe2\x80\x9c从发送队列中清除日志记录的速率\xe2\x80\x9d,并且日志记录只有在所有辅助上都已被硬化后才能从该队列中清除\xe2\x80\x99s,并且只有当它们已经发送和接收时才会发生,无论这些记录到达需要多长时间,硬化它们需要多长时间,以及辅助记录需要多长时间将 ack 发送回主节点。
\n\n\xe2\x80\x99 是一个非常不同的定义,即使它们在外观上看起来相同。数据从本地内存队列 (log_send_queue) 中删除的速度比发送到其他地区、国家或数据中心的辅助数据的速度要快得多。
\n\n尼科斯
\n\n@Thomas(我还是太菜鸟了,无法在这里添加评论,抱歉。如果更容易的话,我可以提供我的工作电子邮件,我们可以离线讨论,并在达成共识时在此处更新?)\n嗨,托马斯
\n\n不幸的是,虽然你的观点是正确的,但这不是关键点。是的,由于您所描述的所有原因,关联起来更困难,但这不是我要强调的问题。
\n\n关键是,DMV 中的字段“log_send_rate”实际上并不是将日志记录发送到副本的速率。
\n\n更准确地说,它是日志记录从发送队列中删除的速率,在日志记录已经发送到辅助设备、在辅助设备上进行硬化,然后将确认发送回主设备之后。只有这样才能将它们从主发送队列中清除。
\n\n这与我在第一篇文章中包含的链接中列出的含义完全不同。当您处理跨区域(例如伦敦到纽约)发送费率时,而不是处理往返于本地数据中心的发送费率时,也更容易看到差异。
\n 归档时间: |
|
查看次数: |
3010 次 |
最近记录: |