> 健康
jvmdump文件生成(jvm的dump太大了怎么分析)
导语:JVM调优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、查看异常错误的线程本文内容由小彤整理编辑!