1. 程式人生 > >myeclipse啟動tomcat記憶體溢位,或tomcat記憶體溢位問題解決辦法

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服務,設定生效。