分析java堆内存满时那些类占用内存居多

1、在centos7服务器中,查找当前运行的java进程pid。

[root@iZqj001np4kv0sx0gwuz8mZ logs]# jps
29489 neusipo-service-search-1.0-SNAPSHOT-boot.jar
30531 Jps
25527 Application

2、将java进程快照用jmap命令dump下来。

[root@iZqj001np4kv0sx0gwuz8mZ logs]# jmap -dump:format=b,file=29489_2.bin 29489
Dumping heap to /sipo-data/neusipo/services/search-service-13/logs/29489_2.bin ...
Heap dump file created

3、使用xsfp、win等工具将dump下来的文件拷贝到桌面。

4、下载IBM堆分析器

https://www.ibm.com/support/pages/ibm-heapanalyzer

5、打开电脑终端,输入cmd,弹出命令框后,在命令行中输入java启动命令如下(注:ha457.jar是下载的IBM堆分析器,需要在IBM堆分析器目录下运行)

java -jar -Xms10g -Xmx12g ha457.jar

6、在IBM分析器中找到open,打开你dump下来的文件

 8、打开后可看到图形化界面意见IBM工具对堆内存分析

原文地址:https://www.cnblogs.com/Zrecret/p/14845558.html