Weblogic报java.lang.OutOfMemoryError: PermGen space
来源:互联网 发布:歪歪mac版 编辑:程序博客网 时间:2024/05/18 20:52
1 发现问题
在部署的时候,遇到相同的包,一般直接使用“更新”功能,更新多次之后,发现项目部署的越来越慢,而且还会打印java.lang.OutOfMemoryError: PermGen space,OutOfMemoryError是内存溢出,PermGen space说明是永久代(即方法区)发生异常。
2 分析问题
1)、在Tomcat的Wiki页面中记录过这种问题:
Why does the memory usage increase when I redeploy a web application?
That is because your web application has a memory leak.
A common issue are "PermGen" memory leaks. They happen because the Classloader (and the Class objects it loaded) cannot be recycled unless some requirements are met (*). They are stored in the permanent heap generation by the JVM, and when you redeploy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually.
(*) The requirement is that all classes loaded by this classloader should be able to be gc'ed at the same time.
这也算是它山之石可以攻玉了。产生上面问题应该也是JVM虚拟机对永久代区域的内容做垃圾回收造成应用动态加载类文件过多引起的内存溢出错误。
2)、在SUN 官方网站找到一个2003年的bug Report,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4957990,Synopsis :PermHeap bloat in and only in server VM,直到现在状态还是6-Fix Understood, 没有修复。
3 解决问题
1)、在weblogic域的bin目录中(我的是D:\Develop\Weblogic\wls12120\user_projects\domains\mydomain\bin)的setDomainEnv.cmd(linux对应修改setDomainEnv.sh),查找-XX:MaxPermSize:
set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256mset MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=256m
这个参数是设置永久代区域的最大值,默认是256M,直接改成512M(可以根据自己电脑配置适当增大),保存,然后重新启动weblogic。发现weblogic运行速度加快,并且只有当本机内存被其他应用占用很多的时候才会再次出现这种错误。
问题解决。
注:PermGen space,permanent heap generation space,即永久代或方法区。
2)项目大了以后开发环境频繁deploy会导致weblogic报permGen 错误,查了一下,暂时解决的办法是:
在weblogic/common/bin/commEnv.sh中配置
MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"
-Xms:内存初始值
-Xmx:内存最大值(不要超过内存的80%)
MaxPermSize:PermGen(Class和Meta存放区域)区域内存最大值。
可调整为:
MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m"
-XX:MaxPermSize改为256或512转自:http://imaxime.blog.163.com/blog/static/2110492422012111910352118/
- weblogic报java.lang.OutOfMemoryError: PermGen space
- Weblogic报java.lang.OutOfMemoryError: PermGen space
- weblogic报java.lang.OutOfMemoryError: PermGen space
- weblogic报错 java.lang.OutOfMemoryError: PermGen space
- 报错 java.lang.OutOfMemoryError: PermGen space
- weblogic启动时报错 java.lang.OutOfMemoryError: PermGen space
- weblogic java.lang.OutOfMemoryError PermGen space及其解决方法
- 启动Weblogic报出java.lang.OutOfMemoryError: PermGen space异常
- weblogic java.lang.OutOfMemoryError PermGen space及其解决方法
- myeclipse 启动weblogic: java.lang.OutOfMemoryError: PermGen space
- weblogic启动时报错 java.lang.OutOfMemoryError: PermGen space转
- weblogic 内存溢出解决 java.lang.OutOfMemoryError: PermGen space
- Weblogic: Managed Server: java.lang.OutOfMemoryError: PermGen space
- weblogic java.lang.OutOfMemoryError: PermGen space 问题解决方法
- weblogic 内存溢出解决 java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space PermGen space
- java.lang.OutOfMemoryError: PermGen space
- java.lang.OutOfMemoryError: PermGen space
- JDK源码之AbstractCollection
- curl命令
- 安卓系统定制常见问题解决
- POJ1185——炮兵阵地(状态压缩dp)
- (转载)使用Xcode7的Instruments检测解决iOS内存泄露
- Weblogic报java.lang.OutOfMemoryError: PermGen space
- hdu 5783 Divide the Sequence
- Chef 的安装与使用
- HDOJ 5773 The All-purpose Zero
- jQuery源码研究分析学习笔记-jQuery.extend()、jQuery.fn.extend()(八)
- 统计函数三点注意
- 坚持#第3天~递归呀我多么爱你
- java继承
- ReviewForJob——堆排序