`

Tomcat内存问题(二):PermGen space

阅读更多

错误信息:

java.lang.OutOfMemoryError: PermGen space

原因:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

 

解决方法:
1. 手动设置MaxPermSize大小
    a.如果是unix/linux系统:
      修改TOMCAT_HOME/bin/catalina.sh
      在“echo "Using CATALINA_BASE:    $CATALINA_BASE"”上面加入以下行:

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

    b.如果是windows系统:
      修改TOMCAT_HOME/bin/catalina.bat
      在  echo Using CATALINA_BASE:   %CATALINA_BASE% 上面加入以下行:

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

 

2. 将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

 

 

分享到:
评论

相关推荐

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

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

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

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

    解决OutOfMemoryError: PermGen space

    ### 解决OutOfMemoryError: PermGen space 在Java应用程序运行过程中,可能会遇到...本文提供的解决方案包括调整PermGen space的大小、优化代码、使用JConsole监控内存等,希望能帮助开发者们快速定位并解决问题。

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

    #### 二、PermGen space 的常见原因 1. **大量的类加载**:如果应用加载了大量不同的类,则可能很快耗尽PermGen space中的空间。 2. **类信息未被卸载**:Java默认情况下不会自动卸载不再使用的类。这意味着即使...

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

    Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

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

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

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    解决`PermGen space`溢出的方法主要有两个方向:一是增加PermGen的大小,二是优化类的加载。在Tomcat的配置文件中(如`catalina.bat`或`catalina.sh`),可以通过添加`-XX:PermSize`和`-XX:MaxPermSize`参数来设定 ...

    解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题

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

    PermGen space

    在Java虚拟机(JVM)中,PermGen Space,全称Permanent Generation Space,是用于存储类的元数据、常量池、字符串常量等非实例对象数据的一个内存区域。与普通对象的堆空间不同,PermGen Space主要负责存储类的结构...

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

    #### 二、PermGen Space 解释 PermGen(Permanent Generation)空间是Java虚拟机(JVM)的一部分,用于存储类定义、常量池、静态变量等永久代数据。在Java 8之前的版本中,PermGen空间是JVM内存模型的一部分。从Java ...

    解决JVM中得PermGen spac问题

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

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

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

    TOMCAT内存大小调整

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

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

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

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    - `java.lang.OutOfMemoryError: Java heap space`表示Java程序在运行过程中耗尽了所有可用的堆内存空间。 - 当程序创建新的对象或者分配内存时,如果无法在现有的堆内存中找到足够的连续空闲内存块,则会抛出此...

Global site tag (gtag.js) - Google Analytics