我這裡是用的解壓版的tomcat6.0為例
由於我的項目在tomcat(6.0)裡面做了緩衝 所以tomcat預設的記憶體配置會導致OutOfMemoryError: Java heap space 也就是記憶體不夠用了
這裡要分情況
1.如果使用tomcat直接發布項目,在tomcat的bin目錄下,找到catalina.bat檔案,開啟,在最上面添加這樣一句:
set JAVA_OPTS=-Xms256m -Xmx512m.
即可。
2.我們用eclipse開發的時候,就算在tomcat的bin目錄下的catalina.bat添加這樣一句:
set JAVA_OPTS=-Xms256m -Xmx512m.
也無效。
需要在Eclipse:
菜單Window-->Preferences-->Java-->Installed JREs,選擇目前正在使用的JRE,點Edit-->Default VM Arguments:
針對本機記憶體情況輸入參數,如1G的機器可以設定成 -Xms30m -Xmx512m,然後重新啟動Tomcat
在jsp或者在serlvet,action裡面列印tomcat記憶體資訊即可看到tomcat此時的記憶體配置情況
如在action裡面寫一個 test 的action
public ActionForward test(ActionMapping mapping, ActionForm form1,HttpServletRequest request, HttpServletResponse response)throws Exception {System.out.println("TotalMemory :::: "+ (Runtime.getRuntime().totalMemory() / (1024 * 1024) + "M"));System.out.println("Max Memory :::: "+ (Runtime.getRuntime().maxMemory() / (1024 * 1024) + "M"));System.out.println("Free Memory :::: "+ (Runtime.getRuntime().freeMemory() / (1024 * 1024) + "M"));return null;}
tomcat啟動了以後訪問這個test即可看到列印資訊
我這裡的action為http://localhost:8080/aisvoyage/publicAction.do?operator=test
列印結果:
TotalMemory :::: 29M
Max Memory :::: 494M
Free Memory :::: 17M
那麼就設定成功了。
3.如果把tomcat解壓版添加到了windows的系統服務。我這裡添加兩個tomcat到系統服務為例
添加成服務的指令碼為
3.1.解壓2個TOMCAT到D盤目錄分別為tomcat1和tomcat2
3.2.編寫bat 檔案如:installTomcat.bat
內容如下:
rem 安裝tomcat1服務
set CATALINA_BASE=D:\tomcat1
set CATALINA_HOME=D:\tomcat1
call D:\tomcat1\bin\service.bat install tomcat1
rem 安裝tomcat2服務
set CATALINA_BASE=D:\tomcat2
set CATALINA_HOME=D:\tomcat2
call D:\tomcat2\bin\service.bat install tomcat2
3.3:做2個TOMCAT系統服務,方便啟動/停止/重新啟動等操作。
刪除系統命令為:sc delete 服務名 如果服務名有空格的話,服務名兩邊加引號。
服務添加成功了以後需要開啟註冊表 win+r 然後輸入 regedit 找到
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat1\Parameters\
右邊是參數列表 預設是初始128M 最大256M
JvmMs 是tomcat初始化佔用的記憶體的大小
JvmMx 是tomcat最大能佔用的記憶體大小
雙擊用10進位修改以後 重新啟動tomcat的系統服務即可!
如果是tomcat5 則是在
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
後面追加 -Xms300m -Xmx350m
4.tomcat連接埠不衝突需要設定每一個tomcat的監聽連接埠為獨享唯一的。
在tomcat/conf/server.xml裡面有三處連接埠需要改
4.1.<Server port="8005" shutdown="SHUTDOWN">port 需要修改成唯一的
4.2<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />port 需要修改成唯一的
4.3<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />port 需要修改成唯一的
在此記錄下來以備後用和給新手參考..
good lucky