tomcat內(nèi)存溢出解決辦法
修改<CATALINA_HOME>\bin\catalina.bat文件的內(nèi)容,即在里面增加一行代碼:set JAVA_OPTS=-Xms512m -Xmx800m //表示初始化最小可用內(nèi)存512MB和最大可用內(nèi)存是800M(修改相應(yīng)值即可)
如在catalina.bat的
rem ----- Execute The Requested Command
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%
這一欄改為
rem ----- Execute The Requested Command
set JAVA_OPTS=-Xms512m -Xmx800m
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%
就可以將JAVA虛擬機分配內(nèi)存 508.0625MB--800M的!
但是很多人修改后,發(fā)現(xiàn)修改并沒有起作用,即通過windows的服務(wù)啟動tomcat時,實際的內(nèi)存還是默認(rèn)的,修改的設(shè)置并沒有起作用;而通過<CATALINA_HOME>\bin\startup.bat 啟動卻是生效的。這是為什么呢?因為在安裝過程中,JVM的初始化參數(shù)已經(jīng)寫在注冊表中了,由于沒有修改注冊表中相關(guān)參數(shù),所以以windows服務(wù)方式啟動時,修改的并沒有生效。而通過<CATALINA_HOME>\bin\startup.bat 啟動直接是通過<CATALINA_HOME>\bin\catalina.bat文件中的配置的。你需要重新加載到系統(tǒng)服務(wù)中才生效,或者你手工在注冊表中查找修改啟動值,加載到服務(wù)中的時候參數(shù)已經(jīng)配置好了,自己修改artup.bat不會改變注冊表中的參數(shù)設(shè)置。
解決方法:修改注冊表中的參數(shù),加入JVM初始化內(nèi)存的參數(shù):
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
如加入 -Xms512m -Xmx800m
posted on 2008-12-28 11:05 macrochao 閱讀(333) 評論(0) 編輯 收藏 所屬分類: 應(yīng)用服務(wù)器