命令部分
一般来说,在启动java程序时可以通过指定jvm参数来配置:当发生OOM异常时自动生成dump文件,参数配置如下:
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dump.hprof -jar test.jar
但是有的时候,我们需要手动触发生成一次dump文件,我们可以使用如下命令:
jmap -dump:format=b,file=/home/dump.hprof 123(pid)
命令中的123是需要dump文件的java进程的pid(括号及括号中的内容要记得删掉),可以通过top命令进行获取
分析工具
下载完dump文件之后,需要使用工具来对dump文件进行分析,常用的工具有:
Memory Analyzer(mat)——免费
下载地址:https://www.eclipse.org/mat/downloads.php
如果最新版本提示jdk版本比较低,而你本机还是jdk8的话,可以下载1.8.1的版本进行使用
历史版本下载地址:https://www.eclipse.org/mat/previousReleases.phpJPROFILER——收费,可以试用10天
下载地址:https://www.ej-technologies.com/download/jprofiler/files