背景
从08月21号应用上了新功能以后,cpu idle time 从95%左右断崖式下降至75%左右,到08-30空闲恢复到90%左右,后面又开始降下来了,因为报警阀值为50%,所以一直也没有关注到。
报警突然在上周六晚上23点左右报警低于50%,不过一会就恢复了,当时也没有太在意,因为知道这个点数据库有跑批任务,偶尔有cpu负载很正常(dba的警觉,松懈了),后来在白天也开始断断续续的报了起来,自己才觉得不对劲。于是才打开电脑查看了下zabbix 监控报警如下图,发现了上述的现象,当时惊出一身汗啊,照这样下去,数据库服务器离挂不远了啊。
解决过程
根据zabbix监控时间段生成了awr报告,db cpu 占用数据库100%。
发现问题:
sql_id : 6pkaqzmtgz3za 1小时内执行了27,720,222次;
sql_id : cvaz34tbf38xn 1小时内执行了1,358,576次;
sql_id : d54w1bhvhsbmk 1小时内执行了1,358,555次;
sql_id : 6f8v7rj4xmzgp 1小时内执行了5,579,817次;
内心想法:这四条sql这是要疯了差不多1s执行45万次,这是什么业务这么猛
因为这4条sql的单次耗时都是0.几秒,所以基本不用考虑sql优化的问题。于是我把这4条sql情况邮件扔给了开发人员,并提醒了一句:“请尽快解决,目前cpu负载50%-60%,可能会影响数据库的响应速度,随时有宕机的风险”,这句很关键。
邮件发出去以后,引起了领导的重视,让开发尽快确认问题…(此次省备n个字)
最终发现程序逻辑有个bug,对处理过的数据状态未做修改,使程序重复处理相同的数据,造成了死循环。
修复后的cpu idle time 情况:
总结:
作为dba对监控的敏感度一定不能松懈,这次幸亏发现的早,一个逻辑死循环很容易把数据库跑死。awr报告巡检每周最少一次,及时发现性能sql,把问题及时掐灭在萌芽中。。。。第一次经验总结,希望自己能坚持下去。。。。
文章推荐
postgresql | url |
---|---|
《课程笔记:postgresql深入浅出》之 初识postgresql(一) | https://www.modb.pro/db/475817 |
《课程笔记:postgresql深入浅出》之 postgresql源码安装(二) | https://www.modb.pro/db/475933 |
《课程笔记:postgresql深入浅出》之初始化postgresql(三) | https://www.modb.pro/db/479524 |
《课程笔记:postgresql深入浅出》之psql管理工具-常用(四) | https://www.modb.pro/db/479560 |
《课程笔记:postgresql深入浅出》之psql管理工具-高级命令(四) | https://www.modb.pro/db/479559 |
《课程笔记:postgresql深入浅出》之内存与进程(五) | https://www.modb.pro/db/489936 |
《《课程笔记:postgresql深入浅出》之外存&永久存储(六) | https://www.modb.pro/db/502267 |
oracle: | url |
《oracle 自动收集统计信息机制》 | https://www.modb.pro/db/403670 |
《oracle_索引重建—优化索引碎片》 | https://www.modb.pro/db/399543 |
《dba_tab_modifications表的刷新策略测试》 | https://www.modb.pro/db/414692 |
《fy_recover_data.dbf》 | https://www.modb.pro/doc/74682 |
《oracle rac 集群迁移文件操作.pdf》 | https://www.modb.pro/doc/72985 |
《oracle date 字段索引使用测试.dbf》 | https://www.modb.pro/doc/72521 |
《oracle 诊断案例 :因应用死循环导致的cpu过高》 | https://www.modb.pro/db/483047 |
《oracle 慢sql监控脚本》 | https://www.modb.pro/db/479620 |
《oracle 慢sql监控测试及监控脚本.pdf》 | https://www.modb.pro/doc/76068 |
《oracle 脚本实现简单的审计功能》 | https://www.modb.pro/db/450052 |
greenplum: | url |
《pl/java.pdf》 | https://www.modb.pro/doc/70867 |
《gp的资源队列.pdf》 | https://www.modb.pro/doc/67644 |
《greenplum psql客户端免交互执行sql.pdf》 | https://www.modb.pro/doc/69806 |