tomcat-reload-与内存泄露

使用的是tomcat8 ,项目 PermSize 是64mb 而项目lib 大小是33m 

项目中  reloadable="true",

如果更新了class 文件,但是没有重启tomcat 那么使用一段时间后会出现Perm Space Error 的内存泄露。

可能引起的原因是

1.mysql JDBC

2.ThreadLocal 变量

3.日志框架

4.WebAppClassLoader  

使用jmap 导出内存快照用eclipse memory analyser 分析发现是 jdbc 和 webappclassloader 暂用了最多的类,而且存在两个 webappclassloader 对象。

暂时解决方法是:不再使用reload,同时加大PermSize 大小

原文地址:https://www.cnblogs.com/predisw/p/4984078.html