gc日志的含义

gc日志示例

1
2
3
4
5
6
7
8
9
10
2018-11-11T17:53:47.765+0800: 6.223: [GC (CMS Initial Mark)  1208720K(9946240K), 0.0293534 secs]
2018-11-11T17:53:48.622+0800: 7.080: [GC (Allocation Failure) 2158400K->38812K(9946240K), 0.0383138 secs]
2018-11-11T17:53:51.479+0800: 9.937: [GC (CMS Final Remark) 2018-11-11T17:53:51.480+0800: 9.937: [GC (CMS Final Remark) 1167518K->22899K(9946240K), 0.0147020 secs]
22899K(9946240K), 0.0299512 secs]
2018-11-11T17:53:55.022+0800: 13.480: [GC (Allocation Failure) 2176846K->89359K(9946240K), 0.0181967 secs]
2018-11-11T17:54:08.938+0800: 27.396: [GC (Allocation Failure) 2247759K->301630K(9946240K), 0.1307113 secs]
2018-11-11T17:54:12.721+0800: 31.179: [GC (Allocation Failure) 2460030K->337872K(9946240K), 0.6716872 secs]
2018-11-11T17:54:14.953+0800: 33.411: [GC (Allocation Failure) 2496272K->338204K(9946240K), 0.1792878 secs]
2018-11-11T17:54:15.133+0800: 33.591: [GC (GCLocker Initiated GC) 362412K->368987K(9946240K), 0.0447314 secs]
2018-11-11T17:54:48.328+0800: 66.786: [GC (Allocation Failure) 2527387K->347750K(9946240K), 0.0532146 secs]

gc日志的组成

  1. 日期时间: 2018-11-11T17:53:47.765+0800:;
  2. jvm启动依赖的时间(秒): 6.223:;
  3. GC停顿类型: [GC (CMS Initial Mark);
  4. (不一定有)GC发生区域: [DefNew”、“[Tenured”、“[Perm;
  5. (不一定有,针对4中的区域)GC前后该容量变化:
    GC前该内存区域已使用容量->GC后该内存区域已使用容量(该内存区域总容量)
    2496272K->338204K(9946240K);
  6. GC前后java堆容量变化:
    GC前Java堆已使用容量->GC后Java堆已使用容量(Java堆总容量)
    3324K->152K(11904K);
  7. GC耗时: 0.0383138 secs.

GC区域

  1. New: 新生代、年轻代;
  2. Tenured: 老生代、老年代;
  3. Perm: 永久代.

收集器的类型+区域: DefNew: Default Serial收集器的新生代区域。

目标

消除全部FullGC,普通gc时间占用少于5%。
网上说少于3秒一次的频率,由于我们是离线应用,目前还没有什么思路能达到这种性能。

推荐文章