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