簡體   English   中英

PermGen空間內存泄漏

[英]PermGen space Memory leak

org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service() for servlet default threw exception

java.lang.OutOfMemoryError: PermGen space

15到20分鍾后,部署應用程序且服務器掛起時出現此錯誤。

產生PermGen錯誤的原因可能非常具體。 但..

用(在JAVA_OPTS中)為tomcat JVM分配更多空間

-XX:MaxPermSize=256m

或任何您想要的尺寸。

請看一下http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

解決方案是增加tomcat服務器的catalina.batPermGen堆大小; 這可以為您提供一些喘息的空間,但是一段時間之后,最終它還會在java.lang.OutOfMemoryError: PermGen空間中返回。

Follow these steps to increase the PermGen Heap size:

1) Go to Tomcat installation directory i.e C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.14\bin in Windows.

2) Add JAVA_OPTS in your catalina.bat

set JAVA_OPTS="-Xms1024m -Xmx10246m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"

增加PermGen空間可以防止java.lang.OutOfMemoryError: PermGen Tomcat中的java.lang.OutOfMemoryError: PermGen只能使用一段時間,並且最終會根據您重新部署Web應用程序的次數而發生,最好是找出有問題的類,該類會導致tomcat中的內存泄漏並修復它。

當您遇到內存泄漏時,表明您的應用程序中存在永久世代泄漏,這意味着每當您在應用程序服務器中重新部署應用程序時,都會留下很多類。 這些舊的類定義最終出現在您的JVM永久代中,耗盡了寶貴的內存,因此解決方案永遠不會增加Permgen的大小,這個“解決方案”就是一顆定時炸彈。

與其他類型的內存泄漏一樣, 也沒有黃金工具固定的操作列表可用來神奇地解決問題。 有很多可能的情況和解決方法。

話雖如此,我建議您使用Plumbr官方網站 ),在這里您可以找到非常有用的解決方法

解決運行時OutOfMemoryError

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM