tomcat內存溢出解決辦法
修改<CATALINA_HOME>\bin\catalina.bat文件的內容,即在里面增加一行代碼:set JAVA_OPTS=-Xms512m -Xmx800m //表示初始化最小可用內存512MB和最大可用內存是800M(修改相應值即可)
如在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虛擬機分配內存 508.0625MB--800M的!
但是很多人修改后,發現修改并沒有起作用,即通過windows的服務啟動tomcat時,實際的內存還是默認的,修改的設置并沒有起作用;而通過<CATALINA_HOME>\bin\startup.bat 啟動卻是生效的。這是為什么呢?因為在安裝過程中,JVM的初始化參數已經寫在注冊表中了,由于沒有修改注冊表中相關參數,所以以windows服務方式啟動時,修改的并沒有生效。而通過<CATALINA_HOME>\bin\startup.bat 啟動直接是通過<CATALINA_HOME>\bin\catalina.bat文件中的配置的。你需要重新加載到系統服務中才生效,或者你手工在注冊表中查找修改啟動值,加載到服務中的時候參數已經配置好了,自己修改artup.bat不會改變注冊表中的參數設置。
解決方法:修改注冊表中的參數,加入JVM初始化內存的參數:
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) 編輯 收藏 所屬分類: 應用服務器