java.lang.OutOfMemoryError: PermGen space 解决办法

来源:互联网 发布:周琦cba数据 编辑:程序博客网 时间:2024/06/05 16:31

错误分析

OutOfMemoryError: PermGen space 非堆溢出(永久保存区域溢出)

这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。

解决办法

设定最大内存的永久保存区域:

-XX:PermSize=512m -XX:MaxPermSize=2048m

如果对catalina.bat文件不熟悉的话,可以在${tomcat-folder}\bin中新建文件:setenv.bat

set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xms128m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m

参考资料

Tomcat中JVM内存溢出及合理配置
Tomcat – java.lang.OutOfMemoryError: PermGen space

0 0
原创粉丝点击