最近生产环境一台tomcat隔一段时间cpu会达到900%,导致服务响应缓慢。
首先确定排查思路
1.先找到占用cpu高的进程id
ps -ef | grep PID
2.打印出该进程下的线程占用cpu情况
ps -mp pid -o THREAD,tid,time
找到耗时最高的线程4109
3.将需要的线程转为16进制
printf "%x\n" tid
4.打印线程的堆栈信息
jstack pid |grep 100d -A 30
可以根据这个结果排查原因。