在上周写Bug工作的某一天某个时刻,系统挂载的几台容器突然随机命中进行重启,10分钟重启一次,每次重启的容器是随机的(请求命中哪一台那一台就xx),排查出来的原因是因为OOM导致FullGc => FullGc期间线程停顿 => 心跳检测失败 => 重启容器。笔者在那之前还没遇到过FullGc的问题,谨以本文还原一下FullGc的过程跟排查定位
文章目录
1. 触发FullGc的时机
- 老年代空间不足【对象在新生代到达一定时间还不die就被转移至老年代,原因有多,如流未关闭导致的内存泄露】
- 永久代空间不足【JDK1.8之前是方法区、1.8及之后是元空间MetaSpace】
- System.gc():建议Jvm进行GC,but未必会进行
2. 制造OOM现场
写了一段xx代码(先假装我不知道它存在的危害性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。