脏页数据落地导致Mysql抖动

线上出现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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。