您现在的位置是:亿华云 > 数据库
对MySQL报警的一次分析处理小结
亿华云2025-10-09 01:27:44【数据库】1人已围观
简介最近有一个服务出现了报警,已经让我到了忍无可忍的地步,报警信息如下:Metric:mysql.innodb_row_lock_waitsTags:port=4306,service=xxxxdiff(
最近有一个服务出现了报警,对M的次已经让我到了忍无可忍的分析地步,报警信息如下:
Metric:mysql.innodb_row_lock_waits Tags:port=4306,处理service=xxxx diff(#1): 996>900大概的意思是有一个数据库监控指标innodb_row_lock_waits 目前超出了阈值900
但是尴尬的是,每次报警后去环境中查看,小结得到的对M的次信息都很有限,慢日志,分析错误日志里面都没有充分的处理信息可以分析,一来二去之后,小结我开始静下心来分析这个问题的对M的次原因。
首先这个报警信息的分析时间点貌似是有些规律的,我拿着最近几天的处理报警时间做了比对,发现还是源码库小结比较有规律的,那么在系统层面有哪些任务可能会触发呢,对M的次我查找比对了相关的分析任务配置,发现有一个定时任务每1分钟会执行一次,处理但是到了这里疑问就来了,如果每1分钟执行1次,为什么在特定的时间会产生差异较大的处理结果?当然这个现象的解释是个起始。
其实要证明这一点还是蛮容易的,今天我就采取了守株待兔的模式,我在临近报警的时间前后打开了通用日志,从日志输出来看,操作的频率还是相对有限的。源码下载
很快得到了规律性的报警,于是我开始抓取相关的通用日志记录,比如11:18分,我们可以采用如下的模式得到相关的日志,首先得到一个临时的通用日志文件,把各种DML和执行操作都网罗进来。
cat general.log|grep -E "insert|delete|update|select|exec" > general_tmp.log我们以11:18分为例,可以在前后1两分钟做比对,结果如下:
# less general_tmp.log |grep "11:18"|wc -l 400 # less general_tmp.log |grep "11:17"|wc -l 666 # less general_tmp.log |grep "11:16"|wc -l 15发现在报警的那1分钟前后,数量是能够对得上的。
这个表的数据量有200多万,表结构如下:
CREATE TABLE `task_queue` ( `AccID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 自增ID, `TaskStepID` bigint(20) DEFAULT NULL COMMENT 任务步骤ID task_step_conf, `QOrder` int(11) DEFAULT NULL COMMENT 队列排序 task_step_confi.Step_ID, `QState` tinyint(4) DEFAULT 1 COMMENT 队列状态 1:待执行 2:执行中 3:执行成功 4:执行失败, `QExcCount` int(11) DEFAULT 1 COMMENT 执行次数, `CrtTime` datetime DEFAULT NULL COMMENT 创建时间, `ModTime` datetime DEFAULT NULL COMMENT 修改时间, PRIMARY KEY (`AccID`), KEY `idx_taskstepid` (`TaskStepID`), KEY `idx_qstate` (`QState`) ) ENGINE=InnoDB AUTO_INCREMENT=3398341 DEFAULT CHARSET=utf8在日志中根据分析和比对,基本能够锁定SQL是在一类Update操作上面,SQL的执行计划如下:
>>explain update task_queue set QState=1,QExcCount=QExcCount+1,modtime=now() where QState=0 and taskstepid =411\G很赞哦!(74)
热门文章
站长推荐
CNAME:对应解析的记录值为域名地址
华为洪方明:中国制造业数字化转型迫在眉睫,亟需加速发展制造服务业
PyTorch 1.7发布,支持CUDA 11、Windows分布式训练
一篇教会你写90%的shell脚本
为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。
单页应用程序中智能DevOps的五种策略
详解 | Spring Boot 核心的 3 个注解详解
Log配置教程及框架性能比较,看这篇就够了!