亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

AlwaysON同步性能監控的三板斧

2024-07-21 02:48:24
字體:
來源:轉載
供稿:網友
AlwaysON同步性能監控的三板斧延遲是AlwaysOn最大的敵人之一

延遲是AlwaysON的最大敵人之一。對AlwaysON而言,其首要目標就盡量減少(無法避免)主副本、輔助副本的數據延遲,實現主副本、輔助副本的“數據同步”。只有主副本、輔助副本的同步延遲越小越高,只讀訪問的實性性才會越高,數據庫的RTO(Estimating Failover Time )和RPO(Estimating Potential Data Loss)也才會越小。

但延遲可能存在于AlwaysON同步的各個環節中,因此,在分析現延遲情況時,應該首先理解AlwaysON的同步過程,然后切分到每個過程中進行監控和分析。

AlwaysON同步的6大步驟

在我的上篇文章《AlwaysON的同步原理及同步模式》中,曾介紹過AlwaysON的同步過程。歸結起來,主要包括如下六個步驟:

① log flush(PRimary)

② log capture(primary)

③ send(primary and secondary)

④ log receive and cache(secondary)

⑤ log hardened(secondary)

⑥ redo(secondary)

前兩個步驟發生在主副本,最后三個步驟發生在輔助副本,中間的第三個步驟發生主副本和輔助副本之間。

另外,如果是同步提交模式,還需要增加一個步驟:輔助副本在步驟5之后,會發送一個(日志硬化)確認信息給主副本,然后才能進入redo階段。

監控AlwaysOn的同步過程Log Flush(Primary)

Log Flush就是將log buffer中的日志刷入到磁盤中。在SQL Server中,log buffer的大小固定為60KB,當發生事務提交時、checkpoint、或者buffer可用空間不足時,日志就會被flush磁盤中。

AlwaysON只有待主副本的日志刷入磁盤后才能繼續后面的步驟(為了保護主副本的數據一致性)。因此,log flush的越快,AlwaysON后續步驟進入的就越早,延遲就越小,反之亦然。

那么,在這個階段中,如何監控log flush的速度和性能呢?通常,我們使用如下兩個性能計數器:

  • Avg. Disk sec/Write

這是一個磁盤的性能計數器,這個指標反映的是flush期間磁盤的寫操作的平均響應時間,如果10ms以內,說明磁盤性能非常好,如果在10ms到20ms,說明性能較好,如果在20ms到50ms說明性能較差,如果在50ms以上,說明性能很差。

  • SQL Server:Database > Log bytes flushed/sec

這個指標直接反映了每秒flush的日志大小,因在不同的時段、不同的業務中日志產生的大小可能不同,因此不能提供一個標準值用來衡量flush性能的好壞,不過,當這個值很大時,說明數據庫操作(增、刪、改)比較頻繁,需要引起注意,結合后續步驟中的其他指標一起分析。

log capture(primary)

log capture發生在log flush之后,是AlwaysON中最重要的階段(個人認為)。在這個階段中,主副本上會為每個輔助副本維護一個發送隊列,隊列的內容就是從日志緩沖或者磁盤中capture的日志,而隊列的大小則反映了主副本和輔助副本數據不同步的差量。

顯然,在這個階段最可能影響AlwaysON同步性能的兩個關鍵因素就是:capture日志的來源(是磁盤還是內存)和隊列的大小。

在上述兩個因素中,我需要著重解釋下capture日志的來源:是磁盤還是內存?我們自導,從內存中讀取數據效率要遠遠高于從磁盤中讀取,所以在AlwaysON中,SQL Server會盡可能多將日志緩沖到內存中。但緩沖的大小是有限的,如果日志量太大、緩沖的大小不足,則不得不讀取磁盤。

下面我們來熟悉下如何監控日志的來源和發送隊列的大小:

監控日志的來源:

日志到底是讀取自內存還是磁盤,通過如下性能計數器可窺見一斑:

  • SQL Server:Databases:Log Pool Requests/sec和SQL Server:Memory Manager:Log Pool Memory (KB)

解釋:前者表示每秒中從內存中請求日志塊的數量;后者表示log pool memory的大?。?/p>

說明:對于這兩個值,我們希望越高越好,則說明越多的日志可以從內存中讀取到。

  • SQL Server:Databases:Log Pool Disk Reads/sec和SQL Server:Databases:Log Pool Cache Misses/sec

解釋:兩個性能計數器其實都表示內存中找不到要讀取的日志,必須從磁盤中讀取;

說明:如果兩個值越高,說明內存性能不足,SQL Server沒法緩沖更多的日志。

監控日志發送隊列:

在主副本上執行如下語句即可:

SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id as database_id,

dr_state.log_send_queue_size, is_ag_replica_local = CASE

WHEN ar_state.is_local = 1 THEN N'LOCAL'

ELSE 'REMOTE'

END ,

ag_replica_role = CASE

WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'

ELSE ar_state.role_desc

END

FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id )

JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id)

JOIN sys.dm_hadr_database_replica_states dr_state on

ag.group_id = dr_state.group_id and dr_state.replica_id = ar_state.replica_id;

log_send_queue_size表示主數據庫中尚未發送到輔助數據庫的日志記錄量 (KB),也就是上文說的發送隊列,如果某個輔助副本的發送隊列持續增加,說明此副本與主副本同步的數據差量就越大。

在上例中,server1是主副本,server2是輔助副本。主副本的log_send_queue_size始終為null,server2的log_send_queue_size為154067KB。顯然,此時server2明顯落后于主副本。

send(primary and secondary)

send階段是 AlwaysON同步過程中最簡單的一個步驟(個人認為)。在這個階段中,我們主要關注網絡性能就好了,因為主副本必須借助網絡才能把發送隊列的日志傳輸到到對應的輔助副本。如果網絡不好,AlwaysON就會產生延遲,更有甚者,如果是在同步提交模式下,還會導致主副本的事務遲遲不能提交。

對網絡的監控主要通過如下兩個性能計數器即可:

  • Network Interface:bytes sent/sec

解釋:網卡每秒發送的字節數;

說明:對于這個指標我們不能孤立來看,需結合發送隊列的大小,當發送隊列很大,但此性能指標持續比較低時,有可能是網絡有問題(當然,如果是同步模式,需要考慮輔助副本log harden的速度才能決定是否一定跟網絡有關)。

  • Network Interface:output Queue Length

解釋:網卡的發送隊列大小;

說明:一般來說,網卡的隊列大于2時,說明網絡存在擁堵,可能出現了網絡問題。

Log Receive and cache(sencondary)

log receive and cache發生在輔助副本上,表示輔助副本接受來自主副本發送的日志塊、并緩沖起來的過程。

這個階段其實跟網絡速度和內存大小有關,兩者在上文中均有介紹,這里不做過多闡述,只跟大家介紹下這個階段中AlwaysON專有性能計數器。

  • SQL Server:Availabiltiy Replica > Log Bytes Received/sec

解釋:每秒接受的日志大小(單位為KB);

說明:接受的速度越快,說明網絡性能和內存性能均越好。

Log Hardened(sencondary)

介紹log hardened時不得不談一談第一個步驟的log flush,兩者其實是一個東西,只是表述不一樣。因為它們無論是工作原理還是對事務提交的影響都非常類似,因此對log hardened的監控,直接參考步驟一就好了。

redo(secondary)

redo的對象是輔助副本中已經固化的日志(該日志可能是內存中副本,也可能來自磁盤上),是AlwaysON中“實現”數據同步的步驟,其他步驟都是為此做鋪墊,即便是上個步驟的日志固化,它也只能保證主副本和輔助副本的數據一致,而真正的數據同步必須等待輔助副本的redo完成。

在這個階段中,有兩個因素決定了數據延遲的大?。簉edo的日志大小和redo的速度。下面我們從這兩個角度來了解下redo階段的性能監控:

監控redo日志大小

SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id as database_id,

dr_state.redo_queue_size, is_ag_replica_local = CASE

WHEN ar_state.is_local = 1 THEN N'LOCAL'

ELSE 'REMOTE'

END ,

ag_replica_role = CASE

WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'

ELSE ar_state.role_desc

END

FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id )

JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id)

JOIN sys.dm_hadr_database_replica_states dr_state on

ag.group_id = dr_state.group_id and dr_state.replica_id = ar_state.replica_id;

監控redo的速度

redo的速度通過如下性能計數器即可:

  • SQL Server:Database Replica > Redone Bytes/sec

解釋:輔助副本每秒完成redo的字節數;

說明:在分析此指標時,必須結合redo的日志大小,將兩者的結果相除可得到一個大致的同步延遲時間。

結尾

我們知道AlwaysON是SQL Server 2012才開始引入的技術,目前筆者做的案例還不是很多,本文所表述的內容都是基于我有限的實踐經驗總結而來,如有不妥之處還請批評指正。

附上我的新浪微博二維碼,希望我的分享能夠為您帶來一些價值。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久东京| 国产成人一区二区| 亚洲精品www| 国产精品白丝jk喷水视频一区| 亚洲精品电影久久久| 欧美激情中文网| 亚洲成年人影院在线| 国产精品视频内| 97久久精品人搡人人玩| 91精品在线观看视频| 午夜精品久久久久久久99黑人| 亚洲精品v欧美精品v日韩精品| 97视频在线观看免费| 欧美色播在线播放| 欧美亚洲视频一区二区| 精品无人区乱码1区2区3区在线| 欧美一区二区影院| 久久久久亚洲精品成人网小说| 国产精品海角社区在线观看| 国产精品欧美一区二区三区奶水| 亚洲人成电影在线播放| 国产精品网站入口| 51久久精品夜色国产麻豆| 精品视频久久久久久| 午夜美女久久久久爽久久| 91免费视频网站| 91久久嫩草影院一区二区| 亚洲精品白浆高清久久久久久| 亚洲女人天堂成人av在线| 日韩精品中文字幕视频在线| 亚洲自拍偷拍色图| 欧美日本高清一区| 久久久久久伊人| 国产精品福利无圣光在线一区| 日韩色av导航| 日韩美女激情视频| 亚洲男人天堂2024| 精品欧美国产一区二区三区| 精品久久久久久中文字幕一区奶水| 欧洲亚洲免费视频| 久久久久女教师免费一区| 日韩av手机在线观看| 久久中文字幕在线| 欧美精品第一页在线播放| 懂色aⅴ精品一区二区三区蜜月| 中文国产成人精品久久一| 欧美日韩在线观看视频小说| 国产精品亚洲片夜色在线| 久久久噜噜噜久久中文字免| 亚洲人成77777在线观看网| 久久久久久久久国产精品| 国产成人精品电影久久久| 亚洲综合在线中文字幕| 国内偷自视频区视频综合| 成人免费网站在线观看| 国产福利精品视频| 久久在线免费视频| 国产精品激情av在线播放| 国产欧美一区二区| 欧美黑人视频一区| 日韩欧美视频一区二区三区| 一本大道久久加勒比香蕉| 成人激情在线观看| 黄色成人在线免费| 日韩影视在线观看| 神马国产精品影院av| 国产色视频一区| 91九色国产社区在线观看| 日韩电影中文字幕在线观看| 久久久久久久久国产精品| 成人激情电影一区二区| 麻豆国产va免费精品高清在线| 精品久久久久久中文字幕| 成人激情免费在线| 欧美大片大片在线播放| 91免费看视频.| 国产成人鲁鲁免费视频a| 中文字幕9999| 最近2019年中文视频免费在线观看| 正在播放欧美一区| 亚洲美腿欧美激情另类| 精品亚洲男同gayvideo网站| 久久精品欧美视频| 在线日韩中文字幕| 欧美性受xxx| 亚洲精品第一页| 亚洲久久久久久久久久久| 欧美成人高清视频| 奇门遁甲1982国语版免费观看高清| 国产99久久精品一区二区永久免费| 欧美野外wwwxxx| 日韩在线观看免费高清| 欧美高清第一页| 精品香蕉一区二区三区| 欧美成人激情在线| 久久久久这里只有精品| 成人激情综合网| 亚洲人成电影网站色…| 亲子乱一区二区三区电影| 午夜美女久久久久爽久久| 国产精品电影在线观看| 国产精品美乳一区二区免费| 国内精品久久久久久中文字幕| 一本一本久久a久久精品牛牛影视| 久久精品国产亚洲一区二区| 一区二区三区美女xx视频| 亚洲福利在线看| 国产精品主播视频| 尤物精品国产第一福利三区| 日韩毛片在线看| 亚洲97在线观看| 亚洲va欧美va国产综合剧情| 欧日韩在线观看| 乱亲女秽乱长久久久| 一区二区成人av| 久久精品国产亚洲精品| 久久久久久美女| 中文字幕日本欧美| 91在线观看欧美日韩| 欧美日韩免费一区| 久久久91精品| 国产成人+综合亚洲+天堂| 欧美日韩视频免费播放| 欧美高清videos高潮hd| 欧美重口另类videos人妖| 欧美激情奇米色| 综合136福利视频在线| 2019中文字幕在线观看| 日韩激情第一页| 91国产一区在线| 国产成人精品视频在线观看| 国产拍精品一二三| 亚洲免费视频一区二区| 欧美国产日本在线| 国产一区二区三区视频免费| 久久久精品一区二区三区| 欧美日韩亚洲精品内裤| 国产精品久久久久久久久久免费| 波霸ol色综合久久| 精品视频在线播放色网色视频| 久久91精品国产91久久跳| 亚洲xxxxx性| 欧美一级视频一区二区| 日本高清久久天堂| 黄色精品一区二区| 日韩美女av在线免费观看| 国产www精品| 亚洲国产精品yw在线观看| 在线观看日韩欧美| 亚洲美女久久久| 精品国模在线视频| 91午夜在线播放| 亚洲aaa激情| 欧美日韩美女在线| 亚洲男人天堂网站| 国产日韩精品在线播放| 国产成人拍精品视频午夜网站| 亚洲免费中文字幕| 91禁国产网站| 成人激情视频小说免费下载| 在线精品91av| 国产一区二区日韩| 国产精品扒开腿爽爽爽视频| 日本一区二区三区四区视频|