java.lang.OutOfMemoryError: PermGen space

J2EE 码拜 8年前 (2016-05-05) 1003次浏览
项目框架,springmvc + mybatis +mysql
linux上使用tomcat作为服务器,但运行一段时间后,就会出现下面错误:

Jul 19, 2016 9:34:48 AM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor doRun
SEVERE: 
java.lang.OutOfMemoryError: PermGen space

贴下本人配置文件代码,web.xml,已经配置了IntrospectorCleanupListener监听:

<!-- 防止springn内存泄漏 -->
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>

服务器上tomcat配置文件也修改了,catalina.sh中按照网上说的,增大了tomcat内存:

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 
  echo "Using CATALINA_BASE:   $CATALINA_BASE"
  echo "Using CATALINA_HOME:   $CATALINA_HOME"
  echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"

但是还是时不时的会出现上面所说的错误,希望碰到的能说下解决办法 java.lang.OutOfMemoryError: PermGen space

解决方案

20

JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M”

20

perm区用于存放Class和Meta的信息,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以假如你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java.lang.OutOfMemoryError: PermGen space
喜欢 (0)
[1034331897@qq.com]
分享 (0)