可用性組 - AG 儀表板上顯示的重做率與 Perfmon 計數器
我對從 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
:在給定的輔助數據庫上重做日誌記錄的平均速率,以千字節 (KB)/秒為單位。
所以AG 儀表板是基於平均值的,但是在什麼時期?
log_send_rate
根據同一 DMV的描述中的措辭,我懷疑這是“最後一個活躍期” :主副本實例在上次活動期間發送數據的平均速率,以千字節 (KB)/秒為單位。
讓我們試試看。我將打開一個實驗室 AG 儀表板,我注意到的第一件事是重做率不是零,儘管我已經有幾週沒有使用這個東西了:
Perfmon 在二級市場上持平,因為我還沒有做任何事情:
現在我將在我的測試數據庫中插入一些數據:
INSERT INTO dbo.A SELECT TOP (1000) REPLICATE(N'A', 50) FROM master.dbo.spt_values;
現在,輔助節點上的 Perfmon 顯示了一個短暫的現象:
如果我打開 AG 儀表板,我可以看到重做率發生了變化(從 3535 到 3873),但它並沒有回落到零:
所以看起來這個 DMV(和儀表板)只在重做實際發生時才更新,並且它保存了它計算的最後一個值。