调整weblogic虚拟内存暂时我知道的有两种方法:
第一种:
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
更改的方式如下:
F:\bea\user_projects\domains\base_domain\bin 对文件:startWeblogic.cmd中增加:
@REM ----------------------------------------------------------------------
@REM
@REM Reset the memory configuration (2011-03-29)
@REM
@REM ----------------------------------------------------------------------
set MEM_ARGS=-Xms1024m -Xmx1024m -XX:MaxPermSize=512m
如若采用的是eclipse product模式,weblogic server在elipse中启动的话,还要修改eclipse中的配置:
进到eclipse中的eclipse.ini中,修改如下:
--launcher.XXMaxPermSize
512m
-vmargs
-Xms2048m
-Xmx2048m
与weblogic中startWeblogic修改的配置一样。
第二种:
更改的方式如下:
F:\bea\user_projects\domains\base_domain\bin 对文件:setDomainEnv.cmd中配置:
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
下面这一段是关于对第一种方法另一种配置解释:
对 JRockit JVM优化
Task |
Options |
Comments |
Setting the Nursery |
-Xns |
尽力使Nursery最够大,来减少GC停顿时间。最大最好不要超过最大Heap 95%。 |
Setting minimum heap size |
-Xms |
|
Setting maximum heap size |
-Xmx |
|
Setting garbage collection |
-Xgc: parallel |
|
Performs adaptive optimizations as early as possible in the Java application run. |
-XXaggressive:memory |
|
对 SUN JVM优化
Task |
Options |
Comments |
Setting the New generation heap size |
-XX:NewSize |
|
Setting the maximum New generation heap size |
-XX:MaxNewSize |
设置 New Generation heap 最大值. |
Setting New heap size ratios |
-XX:SurvivorRatio |
在Sun generation分为3个区域,一个Edgn和两个survivors。该值是设置Edgn与Surviors的比例。最好设置为8. |
Setting minimum heap size |
-Xms |
推荐这个值最好等于最大的heap。 |
Setting Big Heaps and Intimate Shared Memory |
-XX:+UseISM -XX:+AggressiveHeap |
|
Setting maximum heap size |
-Xmx |
Heap最大值,当然越大越好。 |
直接修改user_projectsdomainsbase_domainbin下的startWebLogic.cmd文件,找到:
Java代码
1. @REM JAVA_OPTIONS - Java command-line options for running the server. (These
2. @REM will be tagged on to the end of the JAVA_VM and
3. @REM MEM_ARGS)
@REM JAVA_OPTIONS - Java command-line options for running the server. (These @REM will be tagged on to the end of the JAVA_VM and @REM MEM_ARGS)
在后面追加以下代码,启动配置信息即可生效。
$ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
内存溢出的原因:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存溢出,解决方法也一定是加大内存。说说为什么会内存溢出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。
除了设置参数时,最最重要的是在创建domains时选择JDK时应该选择bea的JRocke,不要选择sun的JDK(sun JDK的垃圾回收机制被占用,无法回收),所以为了不当机,最好选择bea的。