一、案例分享
1.1 问题描述
大查询长时间执行无法释放DML读锁,后续同步主库的DDL操作获取DML写锁资源被阻塞等待,导致后续同步主库的操作堆积,主从延迟增长严重。从同步延迟的监控来看,延迟从17:11开始,17:51:59进行kill大查询操作,直到17:53建议业务方将大查询kill掉后才结束。
1.2 处理流程
1、当接收到只读实例的同步延迟告警后,登录到RDS的管理控制台查看实例当前会话执行情况,判断只读实例当前负载压力。从当前会话截图可以看到,会话并无明显堆积,但是有两个执行时间很久的大查询操作。
2、17:11延迟开始,17:51 kill大查询,17:53主从延迟恢复。我们仍需要排查这个期间主实例和只读实例的运行情况,分析造成主从延迟的具体原因
3、对主实例的排查
1)查看延迟期间主库是否有一些批处理/大事务操作,主库业务业务请求上涨或者有批量的更新操作。对此,我们主要观察主实例的QPS/TPS监控、MySQL_COMDML和日志读写的监控指标。