解答WebLogic与JVM六大疑问
本文和大家分享一下WebLogic与JVM六大疑问的解决方法,在各类JVM下,都提供标准的JAVA运行-Xms-Xmx参数,当在weblogic中设置-Xms512m-Xmx1024m时,从后台console中观测,weblogic仅仅使用512m初始heap大小,当应用有内存泄漏时或大量用户使用时,512mheap无法满足需要,但weblogic却不会将heap大小在512m-1024m中扩展,此时,weblogic会因内存耗尽而当机;设置-Xmx1024m有什么用?请看下文详细介绍。
WebLogic与JVM六大疑问
◆疑问一:内存参数设置
在各类JVM下,都提供标准的JAVA运行-Xms-Xmx参数,当在weblogic中设置-Xms512m-Xmx1024m时,从后台console中观测,weblogic仅仅使用512m初始heap大小,当应用有内存泄漏时或大量用户使用时,512mheap无法满足需要,但weblogic却不会将heap大小在512m-1024m中扩展,此时,weblogic会因内存耗尽而当机;设置-Xmx1024m有什么用?也一直奇怪,在网上搜罗时,总说是要将-Xms与-Xmx设置成一样大,不知道是不是因为-Xmx根本就没法用?
1、-Xmx设置JVM堆的上限内存值,你-Xms512m-Xmx1024m当然一开始只有512m。如果你安装及补丁等正常-Xmx肯定是会生效的。
至于最小和最大值设置成一样这种做法,要视具体厂商的JVM而定,因为每个不同JVM的GC算法和另外一些JVM结构都不同。
◆疑问二:将verbosegc打开后,一开始就会出现AF,memoryallocatefailure,不知如何解释?更为邪乎的是,need216k也会分配失败,free的却很多,why?
解答:出现AF非常正常,甚至有时候只need多少字节也有可能。关键要分析AF的频率以及free前后的比例,还有针对AF操作到action多少,以及其他。你可以查对应JVM厂商的文档。
◆疑问三:当weblogic所有线程都在忙碌时,新的请求进入队列,在很多情况下已经无法使用了,通过怎样的方式可以知道weblogic应用的这一状态,并且可以让其自举?
解答:关于线程池大小的设定,要关联到你的机器硬件配置、用户的使用并发量等多个因素而定,这个你在performancemonitor中可以看到。
另外,如果你已经配了足够大的线程池但还是不够用,就需要考虑应用的连接释放是否合理了。
◆疑问四:weblogic中有2个admin线程,当内存耗尽时,console也得不到响应?怎么不保留一点点给admin?软件开发网
解答:我不知道“内存耗尽”具体指什么;console如果无法响应,可能是weblogic已经处于无法正常工作状态。
◆疑问五:使用cluster时,某个managed节点发生异常,如线程或内存耗尽,当新的请求进入时,怎么还会负载到这个处于异常的节点?在overload与HA之间难道不可以交叉一下吗?BMW都出X6了,BEA不知道啥时候出weblogicX1版,不过我想websphere也会有同样的问题。
解答:你在这里出现了cluster和HA两个概念,我不知道你具体做的是什么。但据我们以往的使用情况,正常配置的weblogiccluster是不会将请求发送到处于故障状态的节点的。
◆疑问六:WEBLOGIC安装