1.使用top命令,找到cpu占用最高的进程id(pid);
2.使用top -p -H命令找到当前进程里面占用cpu最高的线程id(tid),显示的还是pid;
3.将tid转为16进制,printf “%x”
4.获取线程栈信息,jstack -l /tmp/<文件名>.log将进程信息输出到文件中查看分析;或者jstack | grep <16进制tid>,这个命令只能查看部分信息
5.获取堆内存信息,jmap -dump:format=b,file=文件名.dump 或者这个jmap -dump:live,format=b,file=文件名.dump , live的意思是导出存活对象,其实就是在导出之前执行一次fgc。文件后缀.dump或者.hprof都可以。
将堆内存信息输出到文件中,下载到本地使用jvisualvm进行装入分析,(或者jprofier等分析工具即可);