天天看點

PermGen Space 的錯誤,導緻項目無法正常運作

PermGen Space 的錯誤,導緻項目無法正常運作。

  出現這個錯誤的原因,總結一下:

PermGen Space指的是記憶體的永久儲存區,該塊記憶體主要是被JVM存放class和mete資訊的,當class被加載loader的時候就會被存儲到該記憶體區中,與存放類的執行個體的heap區不同,java中的垃圾回收器GC不會在主程式運作期對PermGen space進行清理,是以當我們的應用中有很多的class時,很可能就會出現PermGen space的錯誤。

    解決方法:

 1. 手動設定MaxPermSize的大小

    修改 TOMCAT_HOME/bin/catalina.bat(Linux上為catalina.sh)檔案,在echo "using CATALINA_BASE:$CATALINA_BASE"上面加入這一行内容:

set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m

catalina.sh修改如下:

JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128m -XX:MaxPermSize=512m

2.修改 TOMCAT_HOME/bin/catalina.bat檔案的内容:在 %_EXECJAVA% %JAVA_OPTS% 後面添加 -Xms=256m -Xmx512m  注意哦,前後後有空格的

例如: %_EXECJAVA% %JAVA_OPTS% -Xms=256m -Xmx512m(空格)後面的内容不變

繼續閱讀