Tomcat Java.OutOfMemoryError : PermGen Space异常
Posted chrischris
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat Java.OutOfMemoryError : PermGen Space异常相关的知识,希望对你有一定的参考价值。
背景:前些日子更新公司多年前一个旧平台发布到Tomcat上之后,频繁收到网站许多模块无法正常使用的反汇。
测试过程中发现平台发布一段时间后,访问相关网页出现如下500页面
解决方案:PermGen space(permanent generation space 永久保存区域) windows下默认最大设置64M.
重启tomcat服务后通过http://localhost:3088/manager/status查看Perm Gen占用率已经达到了90%以上 难怪运行一段时间后会内存溢出
windows平台上解决方法:
调整tomcatPermGen Space的大小:tomcat(解压版)\\bin\\catalina.bat 搜索%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% 在后边添加-XX:PermSize=64m -XX:MaxPermSize=128m 重启tomcat 进入状态管理页面 发现最大容量已经改变
根本原因:该平台下于多年前已经开发完毕,之后一直处于维护更新状态公司并没有重构该平台的想法,由于当时并没有使用包管理工具同时包含多个webapp,导致每个webapp目录下都存在大量重复或无用的jar包里面的类信息被投入到永久保存区域中内,从而导致PermGen space内存溢出的情况发生。
以上是关于Tomcat Java.OutOfMemoryError : PermGen Space异常的主要内容,如果未能解决你的问题,请参考以下文章
使用 Tomcat 7 的 tomcat-maven-plugin - tomcat:deploy 有效,tomcat:undeploy 无效