第一步:找到占用CPU过高的进程的pid
使用top命令,然后按shift+p按照CPU排序
第二步:找到进程中消耗资源最高的线程的id
使用top -Hp [进程id]
第三步:将线程id转换为16进制(字母要小写)
使用echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]
【bc是linux的计算器命令】
第四步:查看线程状态信息
执行jstack [进程id] |grep -A 10 [线程id的16进制]”
第五步:导出堆栈异常信息
执行jstack [进程id] |grep -A 10 [线程id的16进制] > xxx.txt
下载至本地sz xxx.txt
内存占用较高:找到内存占用高的线程后,使用 jmap -dump:format=b,file=dumpfile.dat [pid]将内存信息down下来,pid为线程id,使用java自带工具
java visual vm:打开jdk/bin/jvisualvm,装入dump文件即可;
来源:oschina
链接:https://my.oschina.net/u/3734816/blog/3136891