FullGC

作者: 杰哥长得帅 | 来源:发表于2019-01-04 22:55 被阅读15次

FullGC 的执行

  1. 执行 Minor GC 的时候,JVM 会检查老年代中最大连续可用空间是否大于了当前新生代所有对象的总大小
  2. 如果大于,则直接执行 Minor GC(这个时候执行是没有风险的)
  3. 如果小于了,JVM 会检查是否开启了空间分配担保机制,如果没有开启则直接改为执行 Full GC
  4. 如果开启了,则 JVM 会检查老年代中最大连续可用空间是否大于历次晋升到老年代中的平均大小,如果小于则执行改为执行 Full GC
  5. 如果大于则会执行 Minor GC,如果 Minor GC 执行失败则会执行 Full GC

进入老年代的对象

  1. 大对象会直接进入老年代(避免频繁复制)
  2. 在程序中长期持有了对象的引用(对象年龄达到指定阈值也会进入老年代)
  3. survivor 区太小,只能进入老年代

频繁出现排查方法

开启 -XX:+HeapDumpBeforeFullGC
用 Java VisualVM 工具分析

频繁出现可能原因

  1. 对象引用长期未释放
  2. survivor 区太小
  3. old 区太小

相关文章

  • JVM 什么情况下触发fullGC、minorGC

    10.JVM 什么情况下触发fullGC、minorGC minorGC:eden区空间不足fullGC:1.调用...

  • FullGC

    FullGC 的执行 执行 Minor GC 的时候,JVM 会检查老年代中最大连续可用空间是否大于了当前新生代所...

  • Java Metaspace OOM问题分析

    问题描述: 系统上线发生FullGC 定位过程: 1、查看zabbix监控找到FullGC时间点;2、根据时间点搜...

  • minorGC和FullGC

    什么是minorGC和FullGC minorGC是发生在新生代的GC,而FullGC是发生在老年代的GC。至于为...

  • jvm fullgc说明:fullgc含义和fullgc统计标准

    fullgc 在jvm中的定义是:jvm在进行老年代gc时,其进行stw(stop the word)次数。 这里...

  • GC

    什么时候GC 首先说明GC是有两种的:MinorGC和FullGC。MinorGC发生在新生代,FullGC发生在...

  • CMS堆外内存泄露案例2

    问题描述 线上生产机器fullgc很频繁几乎一分钟一次,younggc确无。 问题分析 fullgc频繁第一反应是...

  • netty 注意点

    昨天的问题给个结果: 问题是netty使用的直接内存,直接内存回收必须有fullGC.但是人少的服没有fullGC...

  • 《Java 虚拟机原理》7.4 精选 —— FullGC 篇

    FullGC 常见问题思考Q1:现网系统发生频繁 FullGC (约每10分钟一次),登陆机器发现 JVM 参数只...

  • 应用性能监控常用性能指标

    常用指标: PV QPS/TPS Response Time LOAD CPU资源 JVMGC FullGC 内存...

网友评论

      本文标题:FullGC

      本文链接:https://www.haomeiwen.com/subject/wtjlrqtx.html