http://www.wujianrong.com/archives/2006/12/javalangoutofmemoryerror_permg.html
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
这里以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内存溢出类型:JVM PermGen space溢出、JVM heap space溢出以及Native Heap溢出,并提供相应的解决方案。 1. **JVM PermGen space溢出** - ** PermGen space** 是JVM内存模型中的...
2. Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理。 解决PermGen space错误的方法有多种,常见的...
日志报错:此错误通常在JVM的永久代空间不足时出现,表现为“Exception in thread "Thread-XX" java.lang.OutOfMemoryError: PermGen space”。 排查思路:检查WebLogic Server的配置,尤其是JVM参数设置,看是否...
- 调整永久代(PermGen space,JDK 7及以前版本使用)或元空间(Metaspace,JDK 8及以上版本使用)大小。对于永久代,可以使用`-XX:PermSize`和`-XX:MaxPermSize`参数进行配置;对于元空间,则通过`-XX:...
1. Tomcat 服务器运行一段时间,总是会自动报异常:java.lang.OutOfmemoryError:PermGen Space 的错误。 解决方法:添加JVM参数:-Xms456m -Xmx556m -XX:PermSize=128m -XX:MaxPermSize=256m。如果是在 Tomcat 目录...
- **非堆内存溢出**: 报错为`java.lang.OutOfMemoryError: PermGen space`,是因为方法区(Method Area)或永久代(PermGen Space)内存不足。 ##### 2. JVM内存参数 - **-Xms**: 设置JVM初始分配的堆内存大小。 -...
1. **内存分配不足**:当 JVM 的内存参数设置不合理,特别是永久代 (PermGen space) 的大小设置过小或未正确配置时,会导致 JVM 无法成功启动。 2. **不兼容的 JDK 版本**:如果 Eclipse 所需的 JDK 版本与实际安装...
- `-XX:PermSize` 和 `-XX:MaxPermSize` 参数用于设置永久代(PermGen space)的初始大小和最大大小。例如,`-XX:PermSize=64M` 表示初始分配64MB的空间,而 `-XX:MaxPermSize=128M` 则表示最大可以使用128MB的空间...
这将分别设置初始堆大小为1GB,最大堆大小为2GB, PermGen空间为512MB。 **4.3 “无法启动服务器”** 可能是由于配置文件的问题,比如`server.xml`。检查并确认所有XML标签正确关闭,且没有语法错误。 **5. 部署...
问题4是内存溢出问题,报错`java.lang.OutOfMemoryError: PermGen space`,意味着Tomcat的永久代内存不足。解决方法是调整Tomcat的JVM内存参数。在`catalina.sh`文件中添加`JAVA_OPTS`,例如`JAVA_OPTS="-Xms256m -...
java.lang.OutOfMemoryError: PermGen space ``` **解决方案**: 1. **增加JVM内存**:通过设置`-DMAVEN_OPTS`参数来调整JVM的内存分配。例如,可以通过以下命令行参数增加内存大小: ``` -DMAVEN_OPTS=-Xms1024...