java.lang.OutOfMemoryError: PermGen space异常

今天在weblogic10.3上部署程序时,报错是:java.lang.OutOfMemoryError: PermGen space异常,网上找到原因是:

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放ClassMeta信息的,Class在被Loader时就会被放到PermGen space, 它和存放类实例(Instance)Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。这是一个Sun JVM的bug

 

解决方式一:不要用SUN的JDK,而改用BEA的 JRokit.

解决方式二:进入到/bea/wlserver_10.3/common/bin目录中,修改commEnv.sh文件,在其中添加如下:

MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"
-Xms:内存初始值

-Xmx:内存最大值(不要超过内存的80%)

MaxPermSize:PermGen(Class和Meta存放区域)区域内存最大值。

 

重启服务器即可。

你可能感兴趣的:(jvm,weblogic,Class,sun,web服务,generation)