JVM性能调优5:Heap堆分析方法

原创 2016年05月31日 16:45:19


本系列包括:
JVm性能调优4:GC日志分析
JVM性能调优5:Heap堆分析方法

JVM性能调优5:Heap堆分析方法

heap分析,包括heap分析和dump文件分析两部分。

(1)heap堆分析,通过jstat命令获取jvm实时的内存分配和垃圾回收情况,并输入到文件中,如下:

jstat -gccapacity -t -h 10 14696 1000 10>gc.log

通过分析heap分配的最小值、最大值、S0S1eden old最小和最大、perm最小和最大、minorgcfull gc的次数等内容:

Timestamp       NGCMN    NGCMX     NGC    S0C   S1C       EC     OGCMN      OGCMX       OGC

  OC      PGCMN    PGCMX    PGC       PC     YGC   FGC

        1134.8  41984.0 672384.0 624256.0   64.0   64.0 109696.0    84096.0 1344896.0    84096.0

 84096.0  21248.0  83968.0 21248.0  21248.0   4595    0

(2)通过jmap命令分析heap内存的使用情况,如下:

jmap -heap 14696 >gc.log

分析heap内存配置和当前的使用情况的快照。如下:

Heap Configuration:

  MinHeapFreeRatio = 40

  MaxHeapFreeRatio = 70

  MaxHeapSize      = 2065694720 (1970.0MB)

  NewSize          = 1310720 (1.25MB)

。。。 。。。

Heap Usage:。。。 。。。

PS Young Generation。。。 。。。

Eden Space:。。。 。。。

From Space:。。。 。。。

。。。 。。。

(3)通过jmap分发heap中对象分配情况,命令如下:

jmap -histo 21204 >gc.log

分析heap中对象分布情况。如下:

num    #instances        #bytes class name

----------------------------------------------

  1:         1123      19054280 [B

  2:        11804       1613008 <methodKlass>

  3:        11804       1506512 <constMethodKlass>

.... ....

Total        67013      26866048

(4)dump文件通过工具进行分析。

首先导出dump映像文件。通过命令:

jmap -dump:live,file=<pid>_.hprof 21204

导出dump文件,注意文件扩展名为“hprof” ,不要导出“bin”类型,在mat堆内存分析工具中不支持“bin”的文件。

以下工具提供dump文件分析功能;jhatjdk自带的分析工具;mateclipse提供的dump分析工具MatHeapAnalyzerIBM提供的共享dump文件分析工具;jprofiler工具。

推荐使用eclipsemat分析工具。


版权声明:本文为博主原创文章,未经博主允许不得转载。

使用jmap和MAT分析JVM堆内存

我的一台生产环境机器每次运行几天之后就会莫名其妙的宕机,分析日志之后发现在tomcat刚启动的时候内存占用比较少,但是运行个几天之后内存占用越来越大,通过jmap命令可以查询到一些大对象引用没有被及时...

Jvm堆内存的划分结构和优化,垃圾回收详解(详细解答篇)

jvm的结构 设置 疑问点 垃圾回收原理 方式, 触发条件。 设置等等的相关纤细介绍...

SpringAPI手动创建代理对象——ProxyFactory

可以通过注解的方式来自定义代理对象的创建,同时也可以通过SpringAPI,手动编程的方式来创建代理对象。几个重要的API: ProxyFactory MethodInterceptor...

Hibernate中的Collection cache(集合缓存)

Hibernate中设置了实体缓存,但是对于实体中的集合属性,默认也是不缓冲的。如果要缓存实体中的集合属性,则还需要对集合属性设置缓存。 对Entity类中的集合属性设置缓存后,如果集合属性中是数值...

5.JVM三大性能调优参数:-Xms -Xmx -Xss

1.-Xss是对每个线程stack大小的调整。直接影响对方法的调用次数 测试结果: 测试代码: package com.dt.spark.jvm.basics; public class He...

Linux上Jvm性能调优方法

确定性能问题 OS 诊断 先考察Linux操作系统上显示的性能指标,主要关注CPU、Memory、I/O三方面: CPU 诊断 主要考察CPU的负载均值(Load Average), ...

JVM(5):Tomcat 性能调优和性能监控(visualvm)

tomcat服务器优化 1、JDK内存优化    根据服务器物理内容情况配置相关参数优化tomcat性能。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM性能调优5:Heap堆分析方法
举报原因:
原因补充:

(最多只允许输入30个字)