我对从 Always on AG 仪表板上检查REDO Rate KB/Sec的指标感到有些困惑,在某些情况下,这与 perfmon 计数器数据库副本匹配:重做字节/秒(希望它是通过 perfmon 重做速率的正确计数器),有时一点也不。
大多数情况下,当有大量活动正在进行时,我认为 AG 仪表板和 DMV 在给定时间显示 REDO 速率为例如 40 MB/秒,这与 perfmon 计数器相匹配。
但是,在较少的活动时间或没有太多要发送给 sec 的情况下,与 perfmon 计数器相比,仪表板和 dmv 上的 REDO Rate 似乎显示不正确的值。
无法理解哪个值是正确的以及如何分析。知道为什么或者它是仪表板中的错误吗?
按要求截图:
在那段时间没有发生任何交易 - 初级端没有主要活动。我正在辅助和主服务器上收集该性能,因为在故障转移新的辅助服务器后,我们仍然需要运行这些计数器。但是,屏幕截图性能数据中提取的数据来自辅助数据。
这两个数字测量的东西略有不同。没错,它们都是重做测量,但它们以不同的方式进行。
Perfmon 计数器近乎实时地更新- 它是最后一秒重做的字节数:
AG 仪表板基于DMV,特别是列
sys.dm_hadr_database_replica_states
redo_rate
:所以AG 仪表板是基于平均值的,但是在什么时期?
log_send_rate
根据同一 DMV的描述中的措辞,我怀疑这是“最后一个活跃期” :让我们试试看。我将打开一个实验室 AG 仪表板,我注意到的第一件事是重做率不为零,尽管事实上我已经有几周没有使用这个东西了:
Perfmon 在二级市场上持平,因为我还没有做任何事情:
现在我将在我的测试数据库中插入一些数据:
现在,辅助节点上的 Perfmon 显示了一个短暂的现象:
如果我打开 AG 仪表板,我可以看到重做率发生了变化(从 3535 到 3873),但它并没有回落到零:
所以看起来这个 DMV(和仪表板)只在重做实际发生时才更新,并且它保存了它计算的最后一个值。