線上出現(xiàn)SQL時延大幅上漲炮姨,拿到監(jiān)控數(shù)據(jù),未能準確知道原因碰煌。
一舒岸、監(jiān)控數(shù)據(jù)
1、外部流量無上漲芦圾,SQL時延上漲100倍
image.png
2吁津、DB的QPS陡然下降
image.png
3、DB所在的機器IO堕扶,寫流量劇增
image.png
4、內網(wǎng)網(wǎng)絡無明顯波動
image.png
5梭依、Mysql主從庫都出現(xiàn)相同的情況
二稍算、開始分析
初步判斷:
1、DB機器出現(xiàn)大量寫操作役拴,影響IO導致DB時延上漲及QPS下降
2糊探、服務的QPS沒上漲,代表不是服務流量影響DB
總結:
MYSQL本身的操作所致河闰,而且是寫磁盤的操作科平,很有可能是涉及主從同步。
三姜性、破案
運維看了下瞪慧,回答如下:
原因:主庫的落地導致IO 拉高了。
解決辦法:調整臟數(shù)據(jù)的落地百分比部念,調低一些弃酌,增加落地頻率,別一次性落地這么猛儡炼。
image.png
更改后妓湘,IO不再抖動:
image.png
但是,為什么會突然大量的落地呢乌询?
三個原因:mysql的自動管理榜贴,redo日志滿了,重啟
更傾向于mysql的自動管理妹田,可以調整刷臟的百分比唬党,防止大流量IO出現(xiàn)
https://www.cnblogs.com/xxmysql/p/5754211.html
四鹃共、臟頁
頁面更新是在緩存池Buffer Pool中先進行的,那它就和磁盤上的頁不一致了初嘹,這樣的緩存頁也被稱為臟頁(英文名:dirty page)
https://blog.csdn.net/weixin_33812433/article/details/92853658
image.png