使用top命令找到CPU高的进程
打印线程堆栈信息 —- jstack命令
1
jstack pid > jstackpid.out
输出内容中nid,tid含义:
nid : 对应的Linux操作系统下的tid线程号,16进制数字
这个应该是jvm的jmm内存规范中的唯一地址定位
在CPU过高的情况下,查找响应的线程,一般定位都是用nid来定位的。而如果发生死锁之类的问题,一般用tid来定位。查看线程下具体进程信息,找出占用CPU较高的线程
1
top -H -p pid
将线程ID转成16进制
1
printf "%x\n" tid
得到输出结果:如cc5
在jstackpid.out中查找nid=0xcc5定位就找到具体问题了
0%