通过Jstack分析CPU占用的线程查找到对应的线程代码

来源:互联网 发布:西安软件开发公司 编辑:程序博客网 时间:2024/05/08 03:50
jstack
使用jdk自带的jstack来分析Linux上cpu占用的线程
cpu占用高的进程和线程可以用top直接筛选出,对应的java代码如何找到呢?关键词:Linux,Java,JVM

1、使用top命令找到耗cpu的java进程
top shift+m
2、dump出该进程的所有线程及状态
使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈.
jstack -l 2065 2065.stack
  
3.使用top -Hp 2065 命令查看对应进程是哪个线程占用CPU过高,注意是线程!


3、printf"%x\n" 2104  将线程的pid 转成16进制

4、cat 2065.stack 打开stack文件




常见问题:


openjdk 没有jstack小工具

hotpot JVM有jstack小工具

dump分析:http://blog.csdn.net/keda8997110/article/details/8264708
0 0