还原FullGc翻车现场

在上周写Bug工作的某一天某个时刻,系统挂载的几台容器突然随机命中进行重启,10分钟重启一次,每次重启的容器是随机的(请求命中哪一台那一台就xx),排查出来的原因是因为OOM导致FullGc => FullGc期间线程停顿 => 心跳检测失败 => 重启容器。笔者在那之前还没遇到过FullGc的问题,谨以本文还原一下FullGc的过程跟排查定位

文章目录

1. 触发FullGc的时机

  • 老年代空间不足【对象在新生代到达一定时间还不die就被转移至老年代,原因有多,如流未关闭导致的内存泄露】
  • 永久代空间不足【JDK1.8之前是方法区、1.8及之后是元空间MetaSpace】
  • System.gc():建议Jvm进行GC,but未必会进行

2. 制造OOM现场

    写了一段xx代码(先假装我不知道它存在的危害性

上一篇:FullGC和字符串去重你明白吗?


下一篇:JVM参数