JVM调优 dump文件怎么生成和分析
1、獲取JVM的dump文件的兩種方式
1. JVM啟動時增加兩個參數(shù):
#出現(xiàn) OOME 時生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX:HeapDumpPath=/home/liuke/jvmlogs/2. 發(fā)現(xiàn)程序異常前通過執(zhí)行指令,直接生成當(dāng)前JVM的dmp文件,6214是指JVM的進(jìn)程號
jmap -dump:format=b,file=/home/admin/logs/heap.hprof 6214獲得heap.hprof以后,就可以分析你的java線程里面對象占用堆內(nèi)存的情況了。
推薦使用Eclipse插件Memory Analyzer Tool來打開heap.hprof文件。
由于第一種方式是一種事后方式,需要等待當(dāng)前JVM出現(xiàn)問題后才能生成dmp文件,實時性不高,第二種方式在執(zhí)行時,JVM是暫停服務(wù)的,所以對線上的運(yùn)行會產(chǎn)生影響。所以建議第一種方式。
?
2. 查看整個JVM內(nèi)存狀態(tài)?
jmap -heap [pid]
?
3. 查看JVM堆中對象詳細(xì)占用情況
jmap -histo [pid]
4. 導(dǎo)出整個JVM 中內(nèi)存信息,可以利用其它工具打開dump文件分析,例如jdk自帶的visualvm工具
jmap -dump:file=文件名.dump [pid]
jmap -dump:format=b,file=文件名 [pid]
format=b指定為二進(jìn)制格式文件
?
利用MAT進(jìn)行分析文件,下面是MAT安裝教程
在Eclipse help -> Eclipse Marketplace下搜索Memory:?
?
安裝后打開導(dǎo)出的文件:
1、打開MAT面板
?
?
2、打開導(dǎo)出文件
?
3、分析
暫時不寫了參照android的分析? ?https://www.jianshu.com/p/c8e0f8748ac0
?
轉(zhuǎn)載于:https://www.cnblogs.com/myseries/p/10827195.html
總結(jié)
以上是生活随笔為你收集整理的JVM调优 dump文件怎么生成和分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到自己生病去医院是什么意思
- 下一篇: Red Hat 8.0中设置光盘为软件源