注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

love3400wind的blog

like

 
 
 

日志

 
 
 
 

WEBLOGIC of memory solutions  

2011-05-30 23:35:20|  分类: IT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
A few days ago to deploy WebLogic thread obstruction occurs, see the background error: <[STUCK] ExecuteThread: '58 'for queue:' weblogic.kernel.Default (self-tuning) 'has been busy for "697" seconds working on the request "Http Request: aaa.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
The document was found in the company before the deployment of all the weblogic is using Sun's JDK, so no specific analysis to be a replacement.
Slow system response to clients today, see the background that packet memory overflow exception, cause the entire system does not respond, then restart it was restored.
-------------------------------------------------- ----------------------
Transfer from the following other Blog
-------------------------------------------------- ----------------------
Scene:
Training environment user training needs, setting up the training environment, due to run longer rarely updated, the test of time to system stability, the stability of this problem and unfortunately the good wishes of all of us have been contrary to pray every day, but also not quite to the face, found a reason to solve again and again there are other factors that caused the crash, made a terrible fix, here we find a reason for causing the crash, please be vigilant.
September 16 system crashes, Weblogic quoted java.lang.OutOfMemoryError: PermGen space Exception ,10-15 minutes later it happened <[STUCK] ExecuteThread: '2 'for queue:' weblogic.kernel.Default (self- tuning) '> <<WLS Kernel>> <> <> <1221538218253> <BEA-000339> <[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' has become "unstuck . "> the error, this time has been unable to access the domain console.
Investigation and analysis:
1, reference tomcatFAQ: http://wiki.apache.org/tomcat/FAQ/Deployment the following:
Why does the memory usage increase when I redeploy a web application?
Because the Classloader (and the Class objects it loaded) cannot be recycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually.
Tomcat FAQ on the SUN JVM that is permanent heap generation (default 4M) the contents of the garbage collector not to cause a memory overflow error.
2, SUN official website to find a bug in 2003 Report, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4957990 , Synopsis: PermHeap bloat in and only in Server VM, until now, state or 6 -Fix Understood, no repair.
Solution:
According to the above analysis, combined with our system environment (Weblogic using Solairs system installed JDK5.0) we can determine the SUN JVM on the contents of permanent heap generation do not do garbage collection area caused too many files with Dynamic Load class caused OutOfMemory error. Also proposed two solutions:
Increase the PermGen space the size of replacement of different manufacturers JVM parameters
Consider the use of the development of JDK1.5, for there is a risk to other JVM, so modify the weblogic start the service call setDomainEnv.sh batch file, which will be a length of fragments to be modified:
if ["$ {JAVA_VENDOR}" = "Sun"]; then
MEM_ARGS = "$ {MEM_ARGS} $ {MEM_DEV_ARGS}-XX: MaxPermSize = 128m"
export MEM_ARGS
fi
Change in the MaxPermSize 1024m, verify that the problem exists.
Implementation of the results:
OutOfMemoryError system does not appear to run normally again. The crash causes the problem solved.
Classic books from Java to Sun's official Java Web site to promote the advantages in one - garbage collection, "Auto free memory, reduce the programming burden," Who would have thought Sun's JVM, but also the problem - not recovery load class Class files resulting class object. So do not superstition, authority, step by step according to the phenomenon of unraveling the carefully verify is king!
-------------------------------------------------- -------------------------------------------------- ----------------------
After a large project development environment will lead to weblogic deploy frequently reported permGen errors, checks the temporary solution is:
In weblogic / common / bin / commEnv.sh configured
MEM_ARGS = "-Xms32m-Xmx200m-XX: MaxPermSize = 128m"
-Xms: the initial value of memory
-Xmx: memory maximum (no more than 80% of memory)
MaxPermSize: PermGen (Class and Meta storage area) area of memory maximum.
Adjustable as follows:
MEM_ARGS = "-Xms512m-Xmx512m-XX: MaxPermSize = 256m"
-XX: MaxPermSize to 256 or 512
  评论这张
 
阅读(1173)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017