java进程cpu耗用率非常高-排查方法

某java进程CPU耗用率非常高

下面启动一个java进程,模拟如何排查java进程cpu使用率非常高的情况。

top  查看CPU耗用率最高的java进程ID,得到进程ID,如:31876
#使用进程ID查看该进程的线程
top -H -p 31876
#找到最高的线程ID,如线程ID是31876,需要将线程ID转换为16进制
printf '0x%x\n' 31876
0x7c94
#使用jstack命令排查,jstack在java-1.8.0-openjdk-devel包中,没有这个命令需要先安装
yum install java-1.8.0-openjdk-devel -y
#使用jstack命令排查, jstack 进程ID | grep -C 20 '16进制的线程ID'
jstack 31876 | grep -C 20 '0x7c94'