记一次CPU持续居高不下的分析过程
1. 某天现场发现问题,数据库服务器CPU一直居高不下,后来和研发一起按照如下步骤排查问题。
2. 收集现场任务日志。从任务日志中,发现 日志中:

解决办法:
在数据库连接串的url中 增加sockettimeout=30000解决
3. CPU还是居高不下,后来在对应数据库的客户端,执行一下sql
select * from information_schema.processlist where DB=‘xxx’ and command != 'sleep' and time>=5;
定时手动刷新上面的sql,找出执行时间超过5s以上的记录,根据Host里的ip和port, ssh到对应服务器后台,执行以下命令,找到进程id号:
netstat -anp|grep port ----找到进程id号
jps -l | grep pid ----根据进程id号找到进程对应的包信息。
4. git上拉下对应的代码,根据表名关键字,找到代码中的使用地方。
最终解决办法:
1. 优化慢sql。
2. 发现浏览器有个插件,每隔1分钟掉用后台这个sql请求,让现场听到插件,后台通过websocket往前端推数据。

浙公网安备 33010602011771号