分析jvm的cpu,内存,回收问题
CPU占用过高,程序假死
1.使用top 定位到占用CPU高的进程PID
top
通过ps aux | grep PID命令
2.获取线程信息,并找到占用CPU高的线程
ps -mp pid -o THREAD,tid,time | sort -rn
3.将需要的线程ID转换为16进制格式
printf "%x\n" tid
4.打印线程的堆栈信息
jstack pid |grep tid -A 30
内存分析
1.如果程序支持本地监控,可以用
#interval:采集间隔(单位:s) pid:进程id jconsole - interval = 1 pid |
实时查看内存的使用信息
2.生成堆文件
jmap -dump:live,format=b,file=heap.hprof PID
使用MAT或其他工具工具进行分析,MAT有MEM LEAK SUSPECT的机制,可以帮助分析内存泄露
垃圾回收频率分析
jstat -gc PID [interval(ms)] [counts]
参考文章
https://www.cnblogs.com/pangguoping/p/5715848.html