[转帖]weblogic启动时报错 java.lang.OutOfMemoryError: PermGen space_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5764 | 回复: 0   主题: [转帖]weblogic启动时报错 java.lang.OutOfMemoryError: PermGen space        下一篇 
smile
注册用户
等级:少校
经验:889
发帖:70
精华:2
注册:2013-4-22
状态:离线
发送短消息息给smile 加好友    发送短消息息给smile 发消息
发表于: IP:您无权察看 2013-4-25 9:47:16 | [全部帖] [楼主帖] 楼主

<Error> <HTTP> <localhost.localdomain> <esbServer> <[ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <<WLS Kernel>> <> <> <1241883485802> <BEA-101017> <[weblogic.servlet.internal.WebAppServletContext@197c981[/email] – appName: ‘consoleapp’, name: ‘console’, context-path: ‘/console’] Root cause of ServletException.
java.lang.OutOfMemoryError: PermGen space
>
####<2009-5-9 下午11时38分07秒 CST> <Error> <Kernel> <localhost.localdomain> <esbServer> <[ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <<WLS Kernel>> <> <> <1241883487493> <BEA-000802> <ExecuteRequest failed
java.lang.OutOfMemoryError: PermGen space.
java.lang.OutOfMemoryError: PermGen space


错误解释:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。
解决方法:
参考解决方法:

  • 1、Increase MaxPerm size 
  • eg: -XX:+MaxPermSize=256m
  • 2、These additional parameters may also be helpful in some cases.
  • eg: -Xmn1228m -XX:+AggressiveHeap -Xms2048m -Xmx2048m
  • 3、Enable JVM GC logging to analyse the issue if problem still persists by setting following parameter
  • eg: -verbose:gc -XX:+PrintGCDetails



我的解决方案:可以在weblogic中设置setDomainEnv.sh :

参数 MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=512m"

最终成功解决!!

其中,-XX:+AggressiveHeap:
让JVM自动根据机器的内存和CPU数优化各种参数,通常内存会使用机器的最大物理内存。

同时也产生了hs_err_pid23131.log
说明:java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志。
在该日志中发现了如下信息:

PSPermGen total 65536K, used 65535K [0x6e0c0000, 0x720c0000, 0x720c0000)
object space 65536K, 99% used [0x6e0c0000,0x720bffc0,0x720c0000)


上面的信息能看出在Crash的时候,JVM的PermSize空间几乎已经消耗完了。因此,建议扩大PermSize和MaxPermSize的数值。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论