频繁FullGC的原因竟然是“开源代码”? | 京东云技术团队
原文中文,约7800字,阅读约需19分钟。发表于: 。我们主要探究Full GC的角度出发分析我在开发运营后台的时候遇到的频繁Full GC过程。
本文主要讲述了Java语言的特性和垃圾回收机制,以及频繁Full GC的问题。通过分析JVM参数、Tomcat参数、堆栈文件和代码,发现内存泄漏的原因是每个线程中存储了大量的SessionInMemory对象,导致内存占用过高。解决方案包括删除过期的Session、取消ThreadLocal策略、使用本地缓存和减少Tomcat的核心线程数。最终,作者定位到问题的根本原因是shiro-redis组件的版本问题,升级到3.2.3版本后解决了该问题。文章还总结了在报警前后应该注意的事项和收获。