1、问题及现象
有个14G大小的dump文件,通过jhat工具进行分析
报错内存溢出
Reading from gl.hprof... Dump file created Wed Jun 08 17:56:28 CST 2022 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Hashtable.addEntry(Hashtable.java:436) at java.util.Hashtable.put(Hashtable.java:477) at com.sun.tools.hat.internal.model.Snapshot.addHeapObject(Snapshot.java:166) at com.sun.tools.hat.internal.parser.HprofReader.readInstance(HprofReader.java:744) at com.sun.tools.hat.internal.parser.HprofReader.readHeapDump(HprofReader.java:491) at com.sun.tools.hat.internal.parser.HprofReader.read(HprofReader.java:275) at com.sun.tools.hat.internal.parser.Reader.readFile(Reader.java:92) at com.sun.tools.hat.Main.main(Main.java:159) [root@nccztsjb-node-27 data]# netstat -ntlp
换了一台32G内存的主机,执行还是报错内存溢出,就在思考,是不是jhat工具本身有内存的限制··· ···
于是查找到了如下的解决方案······
2、解决方法
增加jhat使用的内存
jhat -J-mx20g gl.hprof
通过-J来指定内存的大小。【-J-mx20g】