您的位置:首页 > 编程语言 > Java开发

java CMS垃圾回收日志解释

2017-10-23 16:46 411 查看
使用CMS垃圾回收器需要注意的几点:
1.希望CMS回收perm区,则必须打开 -XX:+CMSClassUnloadingEnabled开关。
2.标记算法可能会导致大量内存碎片,离散的可用空间无法分配较大的对象,可以配置这个参数进行碎片整理 -XX:+UseCMSCompactAtFullCollection 。
3.-XX:CMSFullGCsBeforeCompaction参数可以用于设定多少次CMS回收后,进行一次内存压缩。
4.如果使用了-XX:+UseConcMarkSweepGC,它会自动开启-XX:+UseParNewGC

  下面来分析一下日志:

2017-10-17T10:25:52.086+0800: 312546.600: 

 [GC 312546.601: 

   [ParNew: 2527009K->12016K(2831168K), 0.1067080 secs] 

    5043247K->2530708K(5976896K), 0.1070890 secs] 

 [Times: user=5.21 sys=0.03, real=0.11 secs] 

这里是年轻代的回收,年轻代使用的是多线程垃圾收集器ParNew。

2527009K(不是年轻代的占用量,而是大小,即eden+两块survivor区之和)->12016K(2831168K)(垃圾回收后年轻代的占用量)。

5043247K->2530708K(5976896K),垃圾收集前后java堆的占用量。年轻代(2527009K)+老年代(5976896K-2527009K=3449887K)。

0.1067080 secs指的是年轻代垃圾收集,提升对象到老年代所消耗的时间。

2017-10-17T10:25:52.197+0800: 312546.711: 

[GC [1 CMS-initial-mark: 2518692K(3145728K)] 2530711K(5976896K), 0.1380010 secs]//CMS周期开始

[Times: user=0.14 sys=0.00, real=0.14 secs] 

2017-10-17T10:25:52.335+0800: 312546.849: [CMS-concurrent-mark-start

2017-10-17T10:25:52.919+0800: 312547.433: [CMS-concurrent-mark: 0.584/0.584 secs]//并发标记阶段的结束

[Times: user=9.70 sys=0.02, real=0.58 secs] 

2017-10-17T10:25:52.919+0800: 312547.433: [CMS-concurrent-preclean-start]

2017-10-17T10:25:52.944+0800: 312547.457: [CMS-concurrent-preclean: 0.024/0.024 secs] 

[Times: user=0.02 sys=0.00, real=0.03 secs] 

2017-10-17T10:25:52.944+0800: 312547.458: [CMS-concurrent-abortable-preclean-start]

 CMS: abort preclean due to time 2017-10-17T10:25:58.008+0800: 312552.522: 

 [CMS-concurrent-abortable-preclean: 1.319/5.064 secs]

  [Times: user=1.99 sys=0.06, real=5.06 secs] 

//CMS-concurrent-preclean和CMS-concurrent-abortable-preclean用来标识可以并发的工作,为重新标记做准备。

2017-10-17T10:25:58.016+0800: 312552.530: 

[GC[YG occupancy: 416420 K (2831168 K)]312552.530: [Rescan (parallel) , 0.1522500 secs]

312552.683: [weak refs processing, 0.0127500 secs]

 [1 CMS-remark: 2518692K(3145728K)] 2935113K(5976896K), 0.1663510 secs] 

 [Times: user=8.43 sys=0.03, real=0.17 secs] 

2017-10-17T10:25:58.183+0800: 312552.697: [CMS-concurrent-sweep-start]

2017-10-17T10:26:01.135+0800: 312555.649: [CMS-concurrent-sweep: 2.952/2.952 secs]//并发清除阶段的结束,释放垃圾对象所占用的空间。

[Times: user=4.35 sys=0.06, real=2.95 secs] 

2017-10-17T10:26:01.136+0800: 312555.649: [CMS-concurrent-reset-start]

2017-10-17T10:26:01.170+0800: 312555.684: [CMS-concurrent-reset: 0.035/0.035 secs]//CMS周期结束,为下一轮并发垃圾收集周期做准备。

[Times: user=0.06 sys=0.00, real=0.03 secs] 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: