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