Tomcat的內存溢出(PermGen space)

java.lang.OutofMemoryError: PermGen space.“永久保存區域溢出”。

PermGen space全稱是Permanent Generation Space。這一部分用於存放class和meta信息,class在被load的時候被加入到這一區域。PermGen space默認大小隻有4M, 而Garbage Collection不會在主程序運行期間對PermGen space進行清理,所以如果web應用會load很多class時,就會出現這個問題。一般使用了Spring和Hibernate框架的web應用,引入了大量第三方的jar包,更容易出現這個問題。

解決方法:

在$CATALINA_HOME/bin/catalina.sh中,添加一句

1 JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512m"


這句代碼中間的-Xms512m -Xmx1024m不是解決這個問題的,而是解決另一種內存溢出的。只是它們一般結合使用,所以就都加上了。

加上這句代碼,再重啓服務,就不會像沒加時那樣每隔十來分鐘就溢出一次了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章