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 无效

怎么卸载tomcat

tomcat学习笔记Tomcat源码剖析

tomcat学习笔记Tomcat源码剖析

命令行启动tomcat,怎么配置

tomcat 配置https