哪些网站可以免费申请域名,佛山网站建设方案,营销方案策划,闸北集团网站建设业务JVM频繁Full GC如何排查
原则是先止损#xff0c;再排查。 FGC的原因是对象晋升失败或者并发模式失败#xff0c;原因都是老年代放不下晋升的对象了。 1.可能是大对象导致的内存泄漏。快速排查方法#xff1a;观察数据库网络IO是否和FGC时间点吻合#xff0c;找到对应…业务JVM频繁Full GC如何排查
原则是先止损再排查。 FGC的原因是对象晋升失败或者并发模式失败原因都是老年代放不下晋升的对象了。 1.可能是大对象导致的内存泄漏。快速排查方法观察数据库网络IO是否和FGC时间点吻合找到对应的SQL和代码。分析内存dump。可以使用jvisualvm查看TODO 需要了解分析工具中指标的含义这种方式定位的时间比较长。 https://cloud.tencent.com/developer/article/1824276 2.可能是内存泄漏。排查方法1查看老年代内存使用情况如果内存使用率很高则可能是内存泄漏代码有问题。2分析监控是否每次GC后内存使用率都是上升的。分析内存堆栈。 在Java中如果发生内存泄漏会导致GC回收不彻底每次GC后堆内存使用率逐渐增高。 https://www.jianshu.com/p/1c6bc8842463 3.如果是比较稳定的系统并且不是所有的环境都有FGC的问题则可能是JVM参数设置得有问题。 4.故障可以先执行jstack和jmap看看内存情况然后进行止损操作 https://java.isture.com/java/jvm/java-jvm-gc-log.html
一些参考资料
1.JVM堆或者元数据空间不足或者OOM 可以明显看到GC线程占用率明显高于其他线程 https://arthas.aliyun.com/doc/dashboard.html#%E6%95%B0%E6%8D%AE%E8%AF%B4%E6%98%8E 2.CMS GC的分析和解决 TODO https://tech.meituan.com/2020/11/12/java-9-cms-gc.html 3.GC优化参数如何设置 TODO https://engineering.xueqiu.com/blog/2015/06/25/jvm-gc-tuning/
一些分析工具和实际案例
https://zhuanlan.zhihu.com/p/491729418 上面是一下GC日志分析工具GCeasy实际使用体验不错下面是使用这个工具分析的例子
一个业务系统GC频繁从cat上看每分钟OGC时间2sYGC时间1.5s。使用这个工具可以看到YGC和OGC都很频繁 说明是堆大小不够用。 并且在GC后堆内存都能回收说明不是堆泄漏。
参考
CMS和GC调优原理 https://caison.github.io/2019/10/13/li-jie-java-gc-yuan-li-he-diao-you/#toc-heading-13 java内存区域说明 https://www.lixueduan.com/posts/java/07-jvm-runtime-area/ 什么事增量式GC https://liujiacai.net/blog/2018/08/04/incremental-gc/
问题
1.CMS的阶段并发可取消的预清理循环终止条件之一是新生代内存使用率达到阈值达到了阈值会做什么操作触发YGC 2.CMS的阶段并发可取消的预清理会进行YGC吗