heap内存下载到本地后,可以用MAT工具分析内存泄露,还有一些自带命令可以方便分析。
1)jmap:列出堆中的当前java对象
/opt/ibm/java/bin/jmap -histo xx > heap.log
2)jmap:导出heap
/opt/ibm/java/bin/jmap -dump:live,format=b,file=/home/temp/heap.log xx
3)jhat:java heap analyse tool,java堆的分析命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,
并支持对象查询语言
/opt/ibm/java/bin/jhat heap.log,启动命令堆内存不足时,指定堆大小 jhat -J-Xmx512m heap.log
查看分析后的html文档,http://localhost:7000
4)jstat:java statistics monitoring tool,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
jstat [Options] vmid [interval] [count]
Options ,一般使用 -gcutil 查看gc情况 ;
vmid ,VM的进程号,即当前运行的java进程号;
interval: 间隔时间,单位为秒或者毫秒
count , 打印次数,如果缺省则打印无数次
4.1间隔1s查看gc情况
sudo -u admin /opt/ibm/java/bin/jstat -gcutil 4190 1s
S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 4.73 57.58 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 57.97 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 58.20 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 58.33 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 58.58 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 58.86 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 59.34 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 59.70 49.01 59.94 860 22.252 386 498.552 520.803 0.00 4.73 60.01 49.01 59.94 860 22.252 386 498.552 520.803
4.2异常gc,s0和s1完全无用,对象直接分配在eden区,导致young很快占满后马上full gc
S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 100.00 69.57 41.55 27 6.632 44 187.973 194.606 0.00 0.00 16.53 70.76 41.55 27 6.632 44 198.962 205.595 0.00 0.00 86.21 70.76 41.55 27 6.632 45 198.962 205.595 0.00 0.00 100.00 70.76 41.55 28 6.632 46 199.754 206.386minor gc太少了,很多临时对象没有被minor gc消灭掉,需要增大s0和s1,把参数-XX:SurvivorRatio=10改为-XX:SurvivorRatio=8,再重启后fullgc正常
8.30 0.00 43.32 77.38 52.67 115 9.467 4 8.228 17.694 8.30 0.00 52.69 77.38 52.67 115 9.467 4 8.228 17.694 8.30 0.00 58.75 77.38 52.67 115 9.467 4 8.228 17.694 8.30 0.00 63.94 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 69.63 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 73.61 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 80.52 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 85.72 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 92.19 77.38 52.68 115 9.467 4 8.228 17.694 8.30 0.00 97.30 77.38 52.68 115 9.467 4 8.228 17.694 0.00 7.11 6.25 77.42 52.68 116 9.485 4 8.228 17.713 0.00 7.11 10.95 77.42 52.68 116 9.485 4 8.228 17.713 0.00 7.11 16.00 77.42 52.68 116 9.485 4 8.228 17.713 0.00 7.11 20.17 77.42 52.68 116 9.485 4 8.228 17.713 0.00 7.11 27.25 77.42 52.68 116 9.485 4 8.228 17.713 0.00 7.11 32.05 77.42 52.68 116 9.485 4 8.228 17.713
4.3 经过调整后,还有1台机器有fullgc异常,如图
S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 0.00 40.67 76.86 44.57 49 7.997 188 468.193 476.190 0.00 0.00 40.71 76.86 44.57 49 7.997 188 468.193 476.190 0.00 0.00 40.77 76.86 44.57 49 7.997 189 468.514 476.511 0.00 0.00 40.83 76.86 44.57 49 7.997 189 468.514 476.511 0.00 0.00 40.85 76.86 44.57 49 7.997 190 468.514 476.511 0.00 0.00 40.88 76.86 44.57 49 7.997 190 468.812 476.809 0.00 0.00 41.02 76.86 44.57 49 7.997 190 468.812 476.809 0.00 0.00 41.08 76.86 44.57 49 7.997 190 468.812 476.809 0.00 0.00 41.11 76.86 44.57 49 7.997 190 468.812 476.809 0.00 0.00 41.17 76.86 44.57 49 7.997 190 468.812 476.809 0.00 0.00 41.20 76.86 44.57 49 7.997 191 469.142 477.138 0.00 0.00 41.25 76.86 44.57 49 7.997 192 469.447 477.444 0.00 0.00 41.38 76.86 44.58 49 7.997 192 469.447 477.444某牛人回复怀疑jvm自行触发了fullgc,把-XX:CMSInitiatingOccupancyFraction=80调整为-XX:+UseCMSInitiatingOccupancyOnly后gc正常了。
相关推荐
网盘文件永久链接 目录 day1: 1 为什么要对jvm做优化 2 jvm的运行参数 3 jvm的内存模型 4 jmap的使用以及内存溢出分析 ...4 可视化GC日志分析工具 day3: 1 Tomcat8优化 2 JVM字节码 3 代码优化 .........
IBM Thread and Monitor Dump Analyzer for Java专业JVM调优工具 一、使用方法 1.使用java -jar启动程序 2.找到需要分析的jvm进程 3.使用jstack [pid] > /tmp/sdapjvmlog.txt导出进程的详细日志 4.使用程序打开...
JVM内存dump分析工具MAT独立安装包,分析内存溢出利器,可以准确定位内存异常原因,解决问题,MemoryAnalyzer-1.10.0.20200225.zip
idea插件JVM内存工具JProfiler11,下载完,即可导入idea,可idea快捷打开使用。
ibm HeapAnalyzer JVM内存分析工具 ha457.jar下载
IBM JVM 分析工具,JCA,javaCore查看工具
IBM的heapanalyzer,可以分析dump出的JVM内存快照。在命令行中,进入到jar文件所在目录,输入命令java -Xmx3000m -jar ha456.jar运行。
- 掌握jamp命令的使用以及通过MAT工具进行分析 - 掌握定位分析内存溢出的方法 - 掌握jstack命令的使用 - 掌握VisualJVM工具的使用 - 了解什么是垃圾回收 - 掌握垃圾会回收的常见算法 - 学习串行、并行、并发、G1垃圾...
IBM java dump 文件分析工具,分析java堆栈信息
jProfiler7 java内存分析 linux版本
oom溢出来的dump文件,可以作为学习使用呢,使用其他工具进行分析哪里问题
JVM(Java虚拟机)的整个流程:发展,运行区域,垃圾回收器,内存分配策略,垃圾收集,JVM分析工具,JVM优化
jvm-tools, 用于 JVM troublshooting 监视和分析的小工具集 瑞士Java刀片( SJK ) SJK是用于JVM诊断,故障诊断和分析的命令行 工具。SJK利用 JVM ( 例如 JMX,JVM附加和性能计数器)的标准诊断接口,并在上面添加更多...
简单的借助jdk中的内置工具帮助我们对比Java源码和生成的字节码以及探究Class文件字节码结构 使用方法 编写Java源码,如项目目录中的Main.java: 运行javac编译成字节码 javac -g:vars Main.java 编译生成...
VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。 jinfo:...
第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是锁的支持。第9~10章介绍了虚拟机的核心——Class文件结构,以及虚拟机中类的装载系统。第11章介绍了虚拟机的执行系统和字节码,并...
dumpAnalyzer图形化进行内存分析,可以很方便的知道系统里面什么地方存在性能瓶颈
帮忙分析javacore和dump文件,查看内存泄漏,线程阻塞,个人觉得很实用,希望可以帮忙到需要的人
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...
jvm分析资料及工具1