JVM调优dump⽂件怎么⽣成和分析
1、获取JVM的dump⽂件的两种⽅式
1. JVM启动时增加两个参数:
#出现 OOME 时⽣成堆 dump:
-XX:+HeapDumpOnOutOfMemoryError
#⽣成堆⽂件地址:
-XX:HeapDumpPath=/home/liuke/jvmlogs/
2. 发现程序异常前通过执⾏指令,直接⽣成当前JVM的dmp⽂件,6214是指JVM的进程号
jvm调优参数jmap -dump:format=b,file=/home/admin/logs/heap.hprof 6214
获得heap.hprof以后,就可以分析你的java线程⾥⾯对象占⽤堆内存的情况了。
推荐使⽤Eclipse插件Memory Analyzer Tool来打开heap.hprof⽂件。
由于第⼀种⽅式是⼀种事后⽅式,需要等待当前JVM出现问题后才能⽣成dmp⽂件,实时性不⾼,第⼆种⽅式在执⾏时,JVM是暂停服务的,所以对线上的运⾏会产⽣影响。所以建议第⼀种⽅式。
2. 查看整个JVM内存状态
jmap -heap [pid]
3. 查看JVM堆中对象详细占⽤情况
jmap -histo [pid]
4. 导出整个JVM 中内存信息,可以利⽤其它⼯具打开dump⽂件分析,例如jdk⾃带的visualvm⼯具
jmap -dump:file=⽂件名.dump [pid]
jmap -dump:format=b,file=⽂件名 [pid]
format=b指定为⼆进制格式⽂件
利⽤MAT进⾏分析⽂件,下⾯是MAT安装教程
在Eclipse help -> Eclipse Marketplace下搜索Memory:
安装后打开导出的⽂件:1、打开MAT⾯板
2、打开导出⽂件
暂时不写了参照android的分析 www.jianshu/p/c8e0f8748ac0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论