天天看點

myeclipse啟動tomcat記憶體溢出,或tomcat記憶體溢出問題解決辦法

        最近項目開發中老是遇到啟動項目後報記憶體溢出,首先我們要确定問題所在,MyEclipse啟動Tomcat無視catalina.bat中設定記憶體大小,是以說如果用myeclipse啟動tomcat記憶體溢出,而tomcat直接啟動不報錯的話,一定是MyEclipse的配置問題,解決辦法如下:

        因筆者用的是Myeclipse10、tomcat 6,是以用MyEclipse10、tomcat6為例子,點選MyEclipse最上面的工具欄的Window --> Preference,然後點選MyEclipse --> Servers --> Tomcat --> Tomcat 6.x --> JDK,然後在Optional Java VM arguments:下設定如下資訊:

        -server -Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m

   點選apply,點選ok。好了,重新開機項目就可以了。

         如果,直接啟動tomcat報記憶體溢出,就需要手動設定JVM記憶體大小。

        Linux下修改JVM記憶體大小:

要添加在tomcat 的bin 下catalina.sh 裡,位置cygwin=false前 。

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"

cygwin=false

windows下修改JVM記憶體大小:

情況一:解壓版本的Tomcat, 要通過startup.bat啟動tomcat才能加載配置

要添加在tomcat 的bin 下catalina.bat 裡

rem Guess CATALINA_HOME if not defined

set CURRENT_DIR=%cd%後面添加,紅色的為新添加的.

set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true

情況二:安裝版的Tomcat下沒有catalina.bat

windows服務執行的是bin\tomcat.exe.他讀取系統資料庫中的值,而不是catalina.bat的設定.

修改系統資料庫HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions

原值為

-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"

-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"

-Xrs

加入 -Xms300m -Xmx350m

重起tomcat服務,設定生效。

  問題簡單剖析,請看下一篇文章《tomcat記憶體溢出問題簡單剖析》