WebLogic10设置虚拟内存大小

来源:互联网 发布:网络课程可信吗 编辑:程序博客网 时间:2024/05/07 16:49

WebLogic10设置虚拟内存大小 对 JRockit JVM优化(2009-05-24 19:04:55)标签:it 分类:学习 WebLogic10设置虚拟内存大小对 JRockit JVM优化 Task Options Comments Setting the Nursery -Xns 尽力使Nursery最够大,来减少GC停顿时间。最大最好不要超过最大Heap 95%。 Setting minimum heap size -Xms BEA 推荐这个值最好等于最大的heap。 Setting maximum heap size -Xmx Heap最大值,当然越大越好。 Setting garbage collection -Xgc: parallel Performs adaptive optimizations as early as possible in the Java application run. -XXaggressive:memory For example $ java -Xns10m -Xms512m -Xmx512m 对 SUN JVM优化 Task Options Comments Setting the New generation heap size -XX:NewSize 默认 NewSize大小是Heap的四分之一,类似Nursery,尽量设置大点减少GC停顿时间。 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最大值,当然越大越好。 For example $ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m 修改方法一: 直接修改user_projects/domains/base_domain/bin下的startWebLogic.cmd文件,找到: Java代码 @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) @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) 在下面增加上文提到的example的代码,启动配置信息即可生效。 修改方法二: 修改user_projects/domains/base_domain/bin下的setDomainEnv.cmd文件,找到: Java代码 set MEM_ARGS=-Xms256m -Xmx512m set MEM_PERM_SIZE=-XX:PermSize=48m set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=128m set MEM_ARGS=-Xms256m -Xmx512m set MEM_PERM_SIZE=-XX:PermSize=48m set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=128m 修改Xms参数,虚拟内存配置信息即可实现。 ============================================================================================ 疑问一:内存参数设置 软件开发网   在各类JVM下,都提供标准的JAVA运行 -Xms -Xmx参数,当在weblogic中设置-Xms512m -Xmx1024m时,从后台console中观测,weblogic仅仅使用512m初始heap大小,当应用有内存泄漏时或大量用户使用时,512m heap无法满足需要,但weblogic却不会将heap大小在512m-1024m中扩展,此时,weblogic会因内存耗尽而当机;设置 -Xmx1024m有什么用?也一直奇怪,在网上搜罗时,总说是要将-Xms与-Xmx设置成一样大,不知道是不是因为-Xmx根本就没法用?   1、-Xmx设置JVM堆的上限内存值,你-Xms512m -Xmx1024m当然一开始只有512m。如果你安装及补丁等正常-Xmx肯定是会生效的。   至于最小和最大值设置成一样这种做法,要视具体厂商的JVM而定,因为每个不同JVM的GC算法和另外一些JVM结构都不同。   疑问二:将verbosegc打开后,一开始就会出现AF ,memory allocate failure,不知如何解释?更为邪乎的是,need 216k 也会分配失败,free的却很多,why?   解答:出现AF非常正常,甚至有时候只need多少字节也有可能。关键要分析AF的频率以及free前后的比例,还有针对AF操作到action多少,以及其他。你可以查对应JVM厂商的文档。   疑问三:当weblogic所有线程都在忙碌时,新的请求进入队列,在很多情况下已经无法使用了,通过怎样的方式可以知道weblogic应用的这一状态,并且可以让其自举?   解答:关于线程池大小的设定,要关联到你的机器硬件配置、用户的使用并发量等多个因素而定,这个你在performance monitor中可以看到。 http://www.mscto.com   另外,如果你已经配了足够大的线程池但还是不够用,就需要考虑应用的连接释放是否合理了。   疑问四:weblogic中有2个admin线程,当内存耗尽时,console也得不到响应?怎么不保留一点点给admin? 软件开发网   解答:我不知道“内存耗尽”具体指什么;console如果无法响应,可能是weblogic已经处于无法正常工作状态。 http://www.mscto.com   疑问五:使用cluster时,某个managed节点发生异常,如线程或内存耗尽,当新的请求进入时,怎么还会负载到这个处于异常的节点?在 overload与HA之间难道不可以交叉一下吗?BMW都出X6了,BEA不知道啥时候出weblogic X1版,不过我想websphere也会有同样的问题。   解答:你在这里出现了cluster和HA两个概念,我不知道你具体做的是什么。但据我们以往的使用情况,正常配置的weblogic cluster是不会将请求发送到处于故障状态的节点的。   疑问六:WEBLOGIC安装   安装时,还得边看文档边安装,前期有大量的系统参数检查,包括补丁等等,在weblogic安装包中,没有提供对各类平台的自动检查功能,工程师安装时,大都能顺利安装上,但问题是跑了一段时间后,发现问题不断,仔细检查后,发现系统某个补丁没有打。在一个平台下安装上让厂商、客户、应用商都前程无忧的weblogic就这样麻烦吗?如果发现安装环境设置有问题,就需要提供一份参数表,供应用商备查,至少心里有底,出了问题做一下参考就行,不用再到网上GOOGLE了。 http://www.mscto.com   解答:这个问题解决很简单,BEA有一份supported configuration文档,你可以根据你的实际环境参考这个文档。这是规范的安装方法。规范的安装对于后期应用系统上线后出现的问题的处理是非常有益的。