天天看點

tomcat中java.lang.OutOfMemoryError: PermGen space異常處理

      1、什麼是PermGen space及作用

      PermGen Space的全稱是Permanent Generation space,是指記憶體的永久儲存區域,這塊記憶體主要是被JVM存放Class和Meta資訊的,Class在被Loader時就會被放到PermGen space中, 它和存放類執行個體(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程式運作期對PermGen space進行清理。

    2、問題産生原因

      如果在Tomcat下部署了較多的應用,或者應用中有很多CLASS的話,就很可能出現PermGen space錯誤, 這種錯誤常見在web伺服器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了JVM預設的大小(4M)那麼就會産生此錯誤資訊了。

  3、解決辦法

     如果是Windows系統,需要修改TOMCAT_HOME/bin/catalina.bat ;如果是Linux系統,則修改TOMCAT_HOME/bin/catalina.sh檔案,在echo Using CATALINA_BASE:   "%CATALINA_BASE%"前面加入

set JAVA_OPTS = -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512m