脏页数据落地导致Mysql抖动

2020-06-01  本文已影响0人  taojian

线上出现SQL时延大幅上涨,拿到监控数据,未能准确知道原因。

一、监控数据
1、外部流量无上涨,SQL时延上涨100倍

image.png

2、DB的QPS陡然下降


image.png

3、DB所在的机器IO,写流量剧增


image.png

4、内网网络无明显波动


image.png

5、Mysql主从库都出现相同的情况

二、开始分析
初步判断:
1、DB机器出现大量写操作,影响IO导致DB时延上涨及QPS下降
2、服务的QPS没上涨,代表不是服务流量影响DB

总结:
MYSQL本身的操作所致,而且是写磁盘的操作,很有可能是涉及主从同步。

三、破案
运维看了下,回答如下:
原因:主库的落地导致IO 拉高了。
解决办法:调整脏数据的落地百分比,调低一些,增加落地频率,别一次性落地这么猛。

image.png

更改后,IO不再抖动:


image.png

但是,为什么会突然大量的落地呢?
三个原因:mysql的自动管理,redo日志满了,重启
更倾向于mysql的自动管理,可以调整刷脏的百分比,防止大流量IO出现
https://www.cnblogs.com/xxmysql/p/5754211.html

四、脏页
页面更新是在缓存池Buffer Pool中先进行的,那它就和磁盘上的页不一致了,这样的缓存页也被称为脏页(英文名:dirty page)
https://blog.csdn.net/weixin_33812433/article/details/92853658

image.png
上一篇 下一篇

猜你喜欢

热点阅读