日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WEBLOGIC 内存溢出 解决方案

發布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WEBLOGIC 内存溢出 解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WEBLOGIC?內存溢出?解決方案
相關教程:
?
?
很好聽?聽聽吧
朱禹齊(原創)??
正文
?
?
前幾天部署WebLogic出現線程阻塞情況,查看后臺報錯:<[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:

?????后來在公司文檔中發現以前所有weblogic的部署使用的JDK都是Sun的,于是沒有進行具體的分析就進行了更換。

?????今天客戶報告系統反應極慢?,查看后臺發現包內存溢出異常,導致整個系統沒有反應,于是進行了重啟才恢復。

------------------------------------------------------------------------

??????以下內容轉自其他Blog

------------------------------------------------------------------------

場景:

用戶培訓需要培訓環境,培訓環境搭好后,由于不常更新跑的時間較長,考驗系統穩定性的時候到了,很可惜穩定性這個問題與我們大家的美好愿望一直背道而馳,天天求神拜佛也不行很不給面子,發現了一個原因解決了又出現了其他引起當機的因素,弄得是焦頭爛額,下面就是我們發現的一個引起當機的原因,請各位提高警惕。

9月16日系統當機,Weblogic報出java.lang.OutOfMemoryError:?PermGen?space異常,10-15分鐘后就會發生<[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".>的錯誤,此時domain的控制臺已經無法訪問。

排查分析:

1、參考tomcatFAQ:?http://wiki.apache.org/tomcat/FAQ/Deployment中如下內容:

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指出SUN?JVM對處于permanent?heap?generation(默認4M)的內容不做垃圾回收會導致內存溢出錯誤。


2、在SUN?官方網站找到一個2003年的bug?Report,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4957990,Synopsis?:PermHeap?bloat?in?and?only?in?server?VM,直到現在狀態還是6-Fix?Understood,?沒有修復。

解決方案:

根據上面的分析,再結合我們系統的環境(Weblogic?使用Solairs系統安裝的JDK5.0)我們可以確定是由于SUN?JVM對permanent?heap?generation?區域的內容不做垃圾回收造成應用動態Load?class文件過多引起的OutOfMemory錯誤。同時提出兩套解決方案:

增加PermGen?space參數大小?
更換不同廠家JVM
考慮由于開發采用JDK1.5,換用其他JVM存在風險,故修改weblogic啟動服務調用的批處理setDomainEnv.sh文件,將其中的一截片斷進行修改:
if?[?"${JAVA_VENDOR}"?=?"Sun"?]?;?then
????????MEM_ARGS="${MEM_ARGS}?${MEM_DEV_ARGS}?-XX:MaxPermSize=128m"
????????export?MEM_ARGS
fi
中MaxPermSize改成1024m,驗證問題是否存在。

實施結果:

系統再未出現OutOfMemoryError運行正常.該原因引起的當機問題解決。

從Java的經典書籍到Sun的官方網站都在宣揚Java的優勢之一——垃圾回收,“自動釋放內存,減輕編程負擔”,可是誰能想到Sun的JVM還有這問題——不回收load?class文件而產生的Class類對象。所以不要迷信權威,根據現象一步一步抽絲剝繭、細心求證才是王道!

--------------------------------------------------------------------------------------------------------------------------

項目大了以后開發環境頻繁deploy會導致weblogic報permGen?錯誤,查了一下,暫時解決的辦法是:?
在weblogic/common/bin/commEnv.sh中配置

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

總結

以上是生活随笔為你收集整理的WEBLOGIC 内存溢出 解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。