原标题:JAVA进程CPU使用率使用过高故障排查
临近月底,用户量上来,发现业务进程频繁从Eureka上掉下来,观察后发现掉下来前进程CPU一直占用比较高。排查得知服务器的Java进程CPU占用高导致的网页请求超时。随后进行了如下排查修复。
一、发现问题的系统检查:
一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多。
二、定位故障
根据这种故障的一般处理思路,先找出问题进程内CPU占用率高的线程,再通过线程栈信息找出该线程当时在运行的问题代码段,操作如下:
2.1、根据思路查看高占用的“进程中”占用高的“线程”,追踪发现7163的进程中16298的线程占用较高,使用命令:
top -Hbp 7163 | awk '/java/ && $9>50'
显示结果:
2.2、将16298的线程ID转换为16进制的线程ID。
printf "%xn&