上午A部门反馈a程序超级慢,已经处理的任务刷新不掉,未处理任务刷新不上了。
先让测试确认,运维看项目后端服务日志,也没找出特别的问题。因研发请假,这个问题就卡住了。
下午B项目组测试人员反馈后端接口超级慢,原来秒几百的接口,现在要几秒才返回数据
上业务服务器看系统性能数据都正常。初步怀疑是数据库服务器问题。
进数据库系统,看带宽,系统负载,磁盘IO都是和往常一样。
不过CPU的使用率达到80%,40%的us使用,40%的sys使用。
用过show processlist查看进程数,7百多一点,没到最大值,正常。
找研发要来两个接口慢的sql语句,手动执行,
一条执行用时7.76s,一条用时3.9s
又到从库执行一遍分别为5s,0.5s
主库确实比较慢。
看一下慢查询日志,1.6G
把慢查询日志备份,清空,等10分钟,又出现很多日志
使用pt-query-digest工具分析:
这个语句超级慢,发给研发确定,多表查询中有一个备份表是没必要查的,而且备份表很大,导致异常慢。
通过修复这个BUG,数据库CPU使用率回复正常。问题解决。