zoukankan      html  css  js  c++  java
  • weblogic启动时报错 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的数值。

     注:weblogic中修改jvm的地方总共有四处,如果不确定该修改哪几处文件可以全部就修改所有的jvm配置文件

    commEnv.cmd 、commEnv.sh、setDomainEnv.cmd、setDomainEnv.sh。

    修改这四个文件中的对应java_vendor下的MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=512m"参数修改其jvm的堆内存区的大小。

  • 相关阅读:
    代码手动修改约束(AutoLayout)
    iOS开发中手机号码和价格金额有效性判断及特殊字符的限制
    Mac下如何显示隐藏文件/文件夹
    Exp8 Web综合 20181308
    20181308 邵壮 Exp7 网络欺诈防范
    20181308 邵壮 Exp6 MSF应用基础
    重现Vim任意代码执行漏洞(CVE-2019-12735) 20181308
    密码引擎-加密API研究 20181308邵壮
    密码引擎-加密API实现与测试 20181308邵壮
    Exp5 信息搜集与漏洞扫描 20181308邵壮
  • 原文地址:https://www.cnblogs.com/moonfans/p/3933572.html
Copyright © 2011-2022 走看看