分析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

posted @ 2020-12-25 13:38  lastcy  阅读(136)  评论(0编辑  收藏  举报