Tomcat频繁因GC overhead崩溃,JProfile分析存疑求助
Tomcat内存溢出问题排查困境
背景情况
我们公司的Unix服务器部署了Tomcat服务,我是负责Spring+Vue.js技术栈的Web应用开发人员,日常工作是生成.war包部署到Tomcat,实现线上HTTPS访问。
最初服务器仅部署5个.war包,分为两类:
- Web应用
- 带定时任务的Rest-Api(部分基于Spring-boot Scheduled开发,部分基于Quartz,还有部分为Spring-boot+Vue.js/原生JavaScript开发)
后来因业务需求,war包数量增加至17个(分类仍与之前一致)。目前每3天Tomcat就会崩溃无法运行,分析日志发现崩溃原因为GC overhead limit exceeded错误,每次重启Tomcat时,catalina.out日志中都会生成full dump of the 64 bit Java HotSpot(TM) Server VM thread记录。
分析过程
借助ycrash社区,我完成了转储文件的分析,还进一步研究了该错误的成因,期间接触并开始使用JProfile工具。
分析截图
- 内存监控:

- 内存摘要:

- 线程状态:

当前疑问
使用JProfile工具分析多日后仍无法推进,存在以下核心疑问:
- 内存持续维持在2GB是否正常?
- 存在80多个阻塞状态线程是否正常?
java.util为何占用如此高的内存?

内容的提问来源于stack exchange,提问作者lorenzo cavalieri
相关产品推荐
相关产品推荐

