调整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 |
?See http://java.sun.com/docs/hotspot/ism.html |
?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的。