专栏首页龙首琴剑庐JVM CMS GC日志详解

JVM CMS GC日志详解

# JDK8
-Xms20M -Xmx20M -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC

CMS 日志格式:

[GC (Allocation Failure) [ParNew: 5504K->640K(6144K), 0.0136830 secs] 5504K->1556K(19840K), 0.0137738 secs] [Times: user=0.06 sys=0.01, real=0.01 secs] 
[GC (Allocation Failure) [ParNew: 6144K->544K(6144K), 0.0012950 secs] 7060K->2102K(19840K), 0.0013310 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [ParNew: 6048K->640K(6144K), 0.0175172 secs] 7606K->4311K(19840K), 0.0176172 secs] [Times: user=0.07 sys=0.01, real=0.01 secs] 
[GC (Allocation Failure) [ParNew: 6144K->640K(6144K), 0.0163793 secs] 9815K->7694K(19840K), 0.0164765 secs] [Times: user=0.10 sys=0.01, real=0.01 secs] 
# ParNew:年轻代收集器   6144->640:收集前后的对比 (6144):整个年轻代容量  9815 ->7694:整个堆的情况(19840):整个堆大小
[GC (CMS Initial Mark) [1 CMS-initial-mark: 7054K(13696K)] 7806K(19840K), 0.0023289 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
# 初始标记,STW, 7054K(13696K)  老年代使用空间、最大空间       7806K(19840K)   整个堆使用空间、最大空间
[CMS-concurrent-mark-start]
[CMS-concurrent-mark: 0.015/0.015 secs] [Times: user=0.05 sys=0.00, real=0.01 secs] 
# 并发标记,这里的时间意义不大,因为是并发执行
[CMS-concurrent-preclean-start]
[CMS-concurrent-preclean: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
# //标记Card为Dirty,也称为Card Markin
[GC (CMS Final Remark) [YG occupancy: 1865 K (6144 K)][Rescan (parallel) , 0.0015431 secs][weak refs processing, 0.0000870 secs][class unloading, 0.0017562 secs][scrub symbol table, 0.0012416 secs][scrub string table, 0.0006834 secs][1 CMS-remark: 7054K(13696K)] 8919K(19840K), 0.0054720 secs] [Times: user=0.01 sys=0.01, real=0.01 secs] 
   #  STW阶段,YG occupancy:  年轻代占用及容量
   #[Rescan (parallel):STW下的存活对象标记
   #weak refs processing: 弱引用处理
   #class unloading: 卸载用不到的class
   #scrub symbol(string) table:   cleaning up symbol and string tables which hold class-level metadata and internalized string respectively
   #CMS-remark: 7054K(13696K): 阶段过后的老年代占用及容量
   # 8919K(19840K) : 阶段过后的堆占用及容量
[CMS-concurrent-sweep-start]
[CMS-concurrent-sweep: 0.010/0.010 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
# 标记已经完成,进行并发清理
[CMS-concurrent-reset-start]
[CMS-concurrent-reset: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
# 重置内部结构,为下次GC做准备

by Sven Augustus https://my.oschina.net/langxSpirit

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据库连接池-tomcat-jdbc食用笔记

    现在 主流的数据库连接池有:Proxool、C3P0、DBCP、tomcat-jdbc、Druid。其中tomcat-jdbc是tomcat服务器比较可靠的 数...

    斯武丶风晴
  • Zookeeper 数据结构详解

    https://zookeeper.apache.org/doc/current/zookeeperOver.html

    斯武丶风晴
  • OpenJDK8 Windows编译

    前言 Open JDK 是开源的JDK。通过对开源JDK的编译调试,我们可以深入了解JVM的运行原理。 以下是我的环境信息: 操作系统: Microsoft W...

    斯武丶风晴
  • 实用JVM参数总结

    注:本文部分参数不适用于JDK1.8,请大家阅读时注意。有时间我会特别总结一下JDK1.8的JVM参数。

    九州暮云
  • Android插件化基础1-----加载SD上APK

    大致的意思是: ClassLoader 是一个负责加载classes的对象,ClassLoader类是一个抽象类,需要给出类的二进制名称,ClassLoader...

    隔壁老李头
  • 面试汇总(六):操作系统常见面试总结(二):系统相关的问题

    上一篇文章我们介绍了在面试中操作系统有关线程和进程常见的面试题。这篇文章我们继续给大家介绍常见的问题。这篇文章将给大家介绍操作系统中系统相关的问题。

    stefan666
  • 一篇文章教你分辨领域服务与应用服务

    作者 | 张逸 判断什么时候应该定义领域服务,什么时候应该定义应用服务,一个根本的判断依据是看需要封装的职责是否与领域相关。 横切关注点 在应用服务中,我们往往...

    张逸
  • Spark 设置指定 JDK 的正确姿势

    这两天在测试环境提交 Spark Streaming 任务时,遇到了一个 JDK 版本问题导致 job 一直提交失败。

    大数据技术架构
  • 电源适配器的相关知识

    电源适配器是小型便携式电子设备及电子电器的供电电源变换设备,一般由外壳、变压器、电感、电容、控制IC、PCB板等元器件组成。

    用户5777378
  • SEO一箭双雕: 认清虚假高权重网站的套路!

    套路无处不在,我们生活在一个信息碎片化的时代,每天面对大量繁杂的内容资讯,有的是积极的正能量,有的则是诱人的套路,当然SEO行业,也不能独善其身,蝙蝠侠IT,近...

    蝙蝠侠IT

扫码关注云+社区

领取腾讯云代金券