JBoss下问题- java.lang.OutOfMemoryError: PermGen space
2013-07-15 13:00
429 查看
最近出现一个问题,在JBoss中部署完项目并运行时,请求网页会报 java.lang.OutOfMemoryError: PermGen space
从网上搜资料后才知道,是由于PermGen space内存不足引起的。
分析原因:
1、 java.lang.OutOfMemoryError: PermGen space 从字面上也能看出是由于 PermGen space 的内存空间不足,而导致的内存溢出错误。
2、PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会Load很多Class的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre
compile的时候。
解决方法:
如果项目中引用了很多的 jar 包,那么这些 jar 包中的 Class 信息会被 JBoss 的 Class Loader 加载到 PermGen space 区域,而在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的。但可以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。
CentOS 6.3下的解决步骤(其他系统类似):
JAVA_OPTS="-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
从网上搜资料后才知道,是由于PermGen space内存不足引起的。
分析原因:
1、 java.lang.OutOfMemoryError: PermGen space 从字面上也能看出是由于 PermGen space 的内存空间不足,而导致的内存溢出错误。
2、PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会Load很多Class的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre
compile的时候。
解决方法:
如果项目中引用了很多的 jar 包,那么这些 jar 包中的 Class 信息会被 JBoss 的 Class Loader 加载到 PermGen space 区域,而在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的。但可以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。
CentOS 6.3下的解决步骤(其他系统类似):
#cd /usr/local/jboss/bin #vim run.conf修改run.conf中的JAVA_OPTS,增加-XX:PermSize=256m -XX:MaxPermSize=512m 两项内容,结果如下
JAVA_OPTS="-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
相关文章推荐
- jboss关于内存溢出的问题java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space问题
- 将应用部署到jboss,java.lang.OutOfMemoryError: PermGen space解决方法
- java.lang.OutOfMemoryError: PermGen space 问题解决
- Java开发常见问题之 - java.lang.OutOfMemoryError:PermGen space
- 解决Eclipse运行Jboss出现java.lang.OutOfMemoryError:PermGen space
- SSH整合 遇 非堆内存溢出问题java.lang.OutOfMemoryError: PermGen space 和 无法建表
- 【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
- 手工配置Tomcat对应的JVM内存大小解决java.lang.OutOfMemoryError: PermGen space问题
- java.lang.OutOfMemoryError: PermGen space问题
- java.lang.OutOfMemoryError: PermGen space 问题解决
- hiveserver2 java.lang.OutOfMemoryError: PermGen space问题解决
- idea运行Jboss部署的项目报:java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space问题
- MyEclipse运行项目的内存溢出问题解决方案:Java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space(jboss 4.2.3.GA)
- java.lang.OutOfMemoryError: PermGen space问题
- 在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法
- 一次线上问题排查:java.lang.OutOfmemoryError: PermGen Space