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 大小

 

posted @ 2015-11-21 16:55  predisw  阅读(336)  评论(0编辑  收藏  举报