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加载堆文件,分析对象的内存占用空间 查看类的引用树,查找大对象