1)打印jvm的内存快照
jmap -dump:live,format=b,file=/home/dump.hprof pid
2)查看内存快照
jhat /home/dump.hprof
如果内存不够,可以增加JVM参数,如下:
jhat -J-mx512M /home/dump.hprof
输出:
Reading from .\heapdump.phrof...
Dump file created Mon Mar 21 11:45:07 GMT+08:00 2022
Snapshot read, resolving...
Resolving 261348 objects...
Chasing references, expect 52 dots....................................................
Eliminating duplicate references....................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
使用浏览器,查看http://localhost:7000/ 可以查看内存信息
重点查看页面最下面的"Show heap histogram"(对内存占用排行榜)链接,也可以使用ODL进行查询 "Execute Object Query Language (OQL) query"。
打出的.hrof内存快照文件,可以使用IBM 的MAT(Memory Analysis Tool)工具进行分析,可以用来进行内存溢出分析,具体分析可以参见后续文章。