PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 2、在tomcat中redeploy时出现outofmemory的错误. 可以有以下几个方面的原因:
1,使用了proxool,因为proxool内部包含了一个老版本的cglib.
2, log4j,最好不用,只用common-logging
3, 老版本的cglib,快点更新到最新版。
4,更新到最新的hibernate3.2 3、
这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
一、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)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
相关推荐
#### 为何会出现PermGen Space的Out of Memory Error? 当应用程序加载了大量的类或者动态生成了很多类(例如通过字节码生成工具或预编译操作),PermGen Space可能会迅速耗尽。特别是在Web应用环境下,如部署Web...
总结而言,优化Tomcat的内存设置,尤其是 PermGen space 和Heap大小,是避免“Out of Memory”错误的关键。通过对JVM参数的细致调整,可以确保Web应用在高负载下稳定运行,提升整体性能。同时,合理组织应用的类加载...
### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...
对于myeclipse中OutOfMemoryError: PermGen space、 stackoverflow,以及background indexer crash recovery修改配置
标题与描述中的关键词“Tomcat Out of Memory Solution”指向了在运行Tomcat服务器时遇到内存溢出错误(Out of Memory Error)的解决方法。在IT领域,尤其是Java应用服务器环境中,Tomcat作为一款广泛使用的开源轻量...
除了 PermGen space 溢出之外,另一个常见的问题是 Java heap space 溢出,即 `-java.lang.OutOfMemoryError: Java heap space`。这种情况发生在应用消耗的堆内存超过分配给 JVM 的最大堆内存限制时。 1. **原因...
根据提供的信息,这个错误主要涉及到两个方面:`PermGen space`和`Java heap`,并且与Tomcat服务器相关。 首先,让我们详细讨论`PermGen space`。 PermGen(Permanent Generation)是Java虚拟机(JVM)的一个内存...
当JVM需要加载新的类而永久代空间不足以存放这些类信息时,就会抛出PermGen space错误。可通过调整-XX:MaxPermSize参数值增加永久代空间的大小。 4. 元空间内存溢出(Metaspace) 随着Java的发展,类元信息的存储...
这个错误可以分为几种类型,包括`PermGen space`、`Heap Space`、`Metaspace`等,分别对应不同的内存区域。 #### 问题场景与原因分析 在特定的应用场景下,例如将大量数据(如3MB)存储到数据库之后执行其他操作时...
如果 Xmx 不指定或者指定偏小,应用可能会导致 java.lang.OutOfMemory 错误。如果 MaxPermSize 设置过小,可能会导致 java.lang.OutOfMemoryError: PermGen space。 因此,合理地配置 JVM 的内存参数是非常重要的,...
Java内存溢出(Out Of Memory, OOM)是开发者在编程过程中经常遇到的问题,尤其是在处理大量数据或长时间运行的应用程序时。本篇文章将详细解析三种常见的Java内存溢出类型:JVM PermGen space溢出、JVM heap space...
2. Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理。 解决PermGen space错误的方法有多种,常见的...
如果应用加载大量类或者使用SSH2等框架导致动态类生成,可能会超出默认大小,引发`Out of MemoryError: PermGen space`。 解决 PermGen Space溢出的方法: 1. **减少重复jar文件**:将相同的第三方jar移动到Tomcat...
标题中的“tomcat内存溢出问题.doc”表明讨论的主题是关于Tomcat服务器遇到的内存溢出(Out Of Memory,OOM)问题,特别是与Java的PermGen空间相关的内存溢出。描述提到,这个问题是因为Tomcat的初始内存设置过小,...
7. 一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成Out Of MemoryError的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。 Java内存溢出是Java程序中的常见...
这个错误可能由多种原因引起,主要分为堆内存溢出(Heap Space)和非堆内存溢出(如 PermGen 或 Metaspace)。 1. **堆内存溢出**: - **原因**:这是最常见的`OutOfMemoryError`类型,当程序创建了太多对象,导致...
在Hotspot虚拟机中,这部分对应持久代(Permanent Generation),当方法区超出其限制时,会抛出`OutOfMemory: PermGen Space`异常。方法区的GC主要针对常量池的回收和已加载类的卸载。 2. 堆区(Heap):这是GC最...
5. **增大PermGen或Metaspace大小**:如果你看到 `OutOfMemoryError: PermGen space` 或 `Metaspace`,这是方法区溢出,可以通过 `-XX:MaxPermSize` (对于老版本JVM) 或 `-XX:MaxMetaspaceSize` (对于Java 8及以后...
方法区存储类的加载信息、常量池等,若设置不当,可能导致`java.lang.OutOfMemoryError: Metaspace`或`PermGen space`错误。 3. **直接内存(Direct Memory)**:JVM通过JNI接口直接分配的内存,用于提高性能。当...