jvm异常排查
一、查看某个进程占用CPU过高问题
查看当前系统CPU占用情况
top
PID为29706占用过高
查看占用过高进程中线程使用情况(可以得到每个线程占用资源情况)
top -Hp 29706
将JVM信息导出到pid.txt
文件汇总
jstack 29709 > pid.txt
将进程PID转为16进制
printf '%x' 29709
在打开的文件中寻找占用CPU过高进程信息
vim pid.txt
/1677
二、dump文件分析(查看内存class占用)
1、jmap:生成dump文件
- test05.txt:生成的文件
- 115025:PID
jmap -dump:live,format=b,file=test05.txt 115025
2、mat分析dump文件
https://www.eclipse.org/mat/downloads.php
文件地址:
CSDN(Mac+Windows)
https://download.csdn.net/download/weixin_44624117/20827238
使用:
3、JDK自带Java VisualVM分析
打开/bin
,目录下jvisualvm.exe
文件进行日志分析。