查找最消耗cpu的java线程
2中方法, 推荐第二种 .
1. top 找到最消耗的java进程id
2. ps -mp pid -o Thread ,tid ,time
3. 转换为16进制 printf "%x\n" nid
4 . jstack pid | grep nid -A 30 最后一个命令 -A 30 是显示匹配后面30行 ,就找到堆栈信息了
下面是第二种方法 :
1. 首先找到java 进程id, 可以使用 ps -ef |grep java. 或者用top查看最消耗的java进程
2. top -Hp pidOfJava 截图如下 , 截图有点失败, 都是0.0, 不过没关系, 注意这图里面的pid是java线程id
3. 随后,用pid 转化为16进制的,可以用c 函数, printf "%x\n" pid 。 最后, jstack pid | grep 16进制nid -A 30. Ok,,找到