`
woo_program
  • 浏览: 99541 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat出现的PermGen Space问题

 
阅读更多

  最近做项目碰到了让我纠结的问题,tomcat服务器运行一段时间,总是会自动报异常:java.lang.OutOfmemoryError:

PermGen Space 的错误,导致项目无法正常运行。

  出现这个错误的原因,总结一下:

PermGen Space指的是内存的永久保存区,该块内存主要是被JVM存放class和mete信息的,当class被加载loader的时候

就会被存储到该内存区中,与存放类的实例的heap区不同,java中的垃圾回收器GC不会在主程序运行期对PermGen space

进行清理,所以当我们的应用中有很多的class时,很可能就会出现PermGen space的错误。

    解决方法:

 1. 手动设置MaxPermSize的大小

    修改 TOMCAT_HOME/bin/catalina.bat(Linux上为catalina.sh)文件,在echo "using CATALINA_BASE:$CATALINA_BASE"上面加入这一行内容:

set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m

 

catalina.sh修改如下:

JAVA_OPTS="$JAVA_OPTS" -server -XX:PermSize=128m -XX:MaxSize=512m

 

2.修改 TOMCAT_HOME/bin/catalina.bat文件的内容:在 %_EXECJAVA% %JAVA_OPTS% 后面添加 -Xms=256m -Xmx512m  注意哦,前后后有空格的

例如: %_EXECJAVA% %JAVA_OPTS% -Xms=256m -Xmx512m(空格)后面的内容不变

 

 

3. 可以考虑将相同的第三方jar文件拷贝到tomcat/shared/lib 目录下,这样可以减少jar文件重复占用内存的。

分享到:
评论
2 楼 liybrn 2015-03-28  
catalina.sh修改如下:
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128m -XX:MaxPermSize=512m"
楼主写错了
1 楼 jqjbpxs 2013-03-25  
我用的是windows下的timcat 没找到TOMCAT_HOME/bin/catalina.bat

相关推荐

    解决OutOfMemoryError: PermGen space

    与堆内存不同,PermGen space的大小默认相对较小,因此容易出现内存溢出的情况。 #### 二、PermGen space溢出的原因 PermGen space发生内存溢出的主要原因有: 1. **加载大量类**:如果应用程序或第三方库加载了...

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    为了有效解决`java.lang.OutOfMemoryError: PermGen space`的问题,可以从以下几个方面入手: 1. **增加PermGen space大小**: - 使用`-XX:PermSize`设置初始大小; - 使用`-XX:MaxPermSize`设置最大大小。 - ...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...

    Tomcat多应用时遇到的PermGen SPACE问题

    NULL 博文链接:https://eastzhang.iteye.com/blog/1788854

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于 JVM 默认分配的运行空间过小,导致 J2EE 项目加载的类过多,造成内存溢出。 PermGen space 是...

    PermGen space

    #### 为何会出现PermGen Space的Out of Memory Error? 当应用程序加载了大量的类或者动态生成了很多类(例如通过字节码生成工具或预编译操作),PermGen Space可能会迅速耗尽。特别是在Web应用环境下,如部署Web...

    解决JVM中得PermGen spac问题

    解决 JVM 中的 PermGen space 问题 ...在 Tomcat 环境中,PermGen space 问题和 Java heap space 问题都是常见的问题。解决这些问题可以使用上述方法。在实际应用中,需要根据实际情况选择合适的解决方法。

    解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题

    然而,在运行过程中,开发者可能会遇到一个棘手的问题,即`OutOfMemoryError: PermGen space`。这个错误表明Java虚拟机(JVM)的永久代(PermGen)空间已满,无法再分配内存给新加载的类和元数据。 PermGen空间是...

    Java内存不足PermGen space错误探究.pdf

    Java内存不足PermGen space错误通常出现在Java程序运行过程中,尤其是当Java EE服务器(如Tomcat、JBoss等)加载WAR或EAR包时。这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存...

    OutOfMemoryError-PermGen-space-的解决方案亲测有效

    针对上述问题,可以采取以下措施来解决PermGen space溢出的问题: 1. **调整JVM参数**: - 在`catalina.bat`文件中添加JVM参数来增加PermGen空间的大小。例如,可以在文件的适当位置加入: ```bat set JAVA_OPTS...

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    tomcat 出现 OutOfMemoryError 的解决方法

    针对 Tomcat 出现 `java.lang.OutOfMemoryError: PermGen space` 和 `java.lang.OutOfMemoryError: Java heap space` 的问题,通过调整 JVM 的内存配置以及优化应用本身,可以有效避免内存溢出的发生。同时,对于...

    ssh Tomcat自动部署无需手动重启服务器设置

    本文主要介绍了使用ssh实现Tomcat自动部署的方法,以及解决OutOfMemoryError PermGen space系统错误的方法。 一、配置Tomcat server.xml文件 在Tomcat的conf文件夹下找到server.xml文件,并添加以下代码:虚拟目录...

    TOMCAT内存大小调整

    OutOfMemoryError: PermGen space异常是由于 PermGen space 内存溢出引起的。解决方法是手动设置MaxPermSize大小。在Tomcat以bat方式启动时,需要修改TOMCAT_HOME/bin/catalina.sh文件,加入以下行:`JAVA_OPTS="-...

    Java内存溢出的详细解决方案

    * 使用 Tomcat 的 PermGen space 优化:Tomcat 提供了 PermGen space 优化的机制,可以通过设置 CATALINA_OPTS 环境变量来实现。 Java heap space Java heap space 是Java虚拟机中的堆内存区域,主要用于存放类...

    gradle-tomcat-plugin-permgen

    ./gradlew permGen" 提示了这是一个实践教程,旨在展示如何通过Gradle的Tomcat插件来配置和管理Tomcat的内存设置,特别是针对`permGen`空间的问题。`./gradlew permGen`命令表明项目中包含一个Gradle任务,该任务...

Global site tag (gtag.js) - Google Analytics