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



本系列包括:
JVM性能调优1:JVM性能调优理论及实践(收集整理)
JVM性能调优2:JVM性能调优参数整理
JVM性能调优3:JVM_堆溢出分析过程和命令
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分析工具。



你可能感兴趣的:(jvm,优化,性能,heap)