1.查找tomcat对应的进程号
ps -ef | grep tomcat   

2.查看线程对应的系统占用情况
top -pid  53495

发现pid 线程占用系统CPU比较高的,然后将pid转为16进制(用户后续线程栈分析中对应,栈中线程号为16进制) 

3.下载当前Java线程栈 sudo -u tomcat jstack -l 384 > /1.txt

查看上面16进制的pid 看是什么线程导致的CPU高负载,发现都是gc线程导致的

4.dump Java堆线程 
sudo -u tomcat -dump:live,format=b,file=/20201201.dump384

jmap -dump:format=b,file=/20201201.dump 47380

使用MAT加载堆文件,分析对象的内存占用空间   查看类的引用树,查找大对象

03-28 11:24
查看更多