龙空技术网

JVM调优dump文件的生成和分析

深漂小小熊 303

前言:

现时大家对“java dump文件怎么分析”大概比较关切,我们都想要分析一些“java dump文件怎么分析”的相关内容。那么小编也在网摘上收集了一些对于“java dump文件怎么分析””的相关资讯,希望朋友们能喜欢,咱们一起来了解一下吧!

一、获取JVM的dump文件的两种方式在jvm启动的时候增加两个参数

1、-XX:+HeapDumpOnOutOfMemoryError 出现OOME时生成堆 dump

2、-XX:HeapDumpPath=/home/jvmlogs/ 红色是生成堆文件地址

发现程序异常通过执行指令,直接生成当前JVM的dump文件

1、jmap -dump:format=b,file=/home/admin/logs/heap.hprof 6214

其中红色的生成堆文件的保存地址,6214是进程的id(pid),format=b指定为二进制格式文件。heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用。

二、查看jvm逻辑

1、命令:jmap -heap pid

显示堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息,如图

2、命令:jstat -gc PID 毫秒数 刷新次数 查看垃圾回收GC的情况,包括fullGC次数和耗时

比如命令PID jstat -gc 12880 5000 20 PID12880,5秒刷新一次,只刷新20次

三、JVM内存溢出定位

打开位于jdk安装目录下的bin目录下的jvisualvm.exe

3.1、点击左上角的文件菜单,看到装入选中,找到自己的堆文件所在的位子,可以看见如下图的界面,更改文件类型,选择堆Dump文件,最后打开3.2、正常的堆文件与异常的堆文件对比

异常的:

正常的:

3.3、查看异常错误的线程

标签: #java dump文件怎么分析 #java dump文件生成 #java生成dump文件 jmap #jvm dump