JVm性能调优4:GC日志分析



本系列包括:
JVM性能调优1:JVM性能调优理论及实践(收集整理)
JVM性能调优2:JVM性能调优参数整理
JVM性能调优3:JVM_堆溢出分析过程和命令
JVm性能调优4:GC日志分析
JVM性能调优5:Heap堆分析方法


GC日志分析方法

包括日志获取和日志分析两部分。

1)日志获取,包括自动输出和实时查看。

方式一:在jvm启动时添加日志输出参数,将gc日志输出到文件中,参数如下:

##日志输出参数

-verbose:gc

-XX:+PrintGCTimeStamps

-XX:+PrintGCDetails

 

##日志文件定义

-Xloggc:../standalone/log/sg-aps-gc.log

-XX:+UseGCLogFileRotation

-XX:NumberOfGCLogFiles=8

-XX:GCLogFileSize=5M"

方式二:如果在jvm启动时没有设置gc参数,可以实时的获取gc日志信息。命令如下:

首先jps获取进程号。

jps -mlvV

其次通过jstat命令将gc日志信息输出到文件中。命令如下:

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

2)日志分析,包括人工分析和工具分析。

人工分析,通过分析Full/mimorgc的收集间隔、收集次数、收集时间、heap中不同区域垃圾收集率人工判断是否存在问题。通过过本方式,能够分析从GC日志中分析出问题。gc日志如下:

C:\Users\zhanglixin>jstat -gccause -t -h 5 21204 1000 10

Timestamp   S0     S1     E     O      P     YGC    YGCT    FGC    FGCT    GCT    LGCC GCC

395.9  0.00   0.00  66.85  0.22  71.43   1213   5.157     0    0.000   5.157 unknown GCCause      No GC

   396.9   0.00   0.00 73.68   0.22  71.43  1216    5.166     0   0.000    5.166 unknown GCCause      No GC

   397.9   0.00   0.00 83.93   0.22  71.43  1219    5.174     0   0.000    5.174 unknown GCause      No GC

   398.9   0.00   0.00  0.00   0.22  71.43  1223    5.184     0   0.000    5.184 unknown GCCause      No GC

   399.9   0.00   0.00  5.37   0.22  71.43  1226    5.198     0   0.000    5.198 unknown GCCause      No GC

工具分析,借助gc工具,分析gc日志,得到一个清晰的统计书序。如下:



你可能感兴趣的:(性能调优)