eclipse中tomcat的內存配置方法

雙擊Servers,打開tomcat的配置界面,點擊General Information中的Open launch configuration,在彈出的框中,選中第二項(Arguments),在VM arguments中輸出如下內容,保存即可。
-Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m
-Xms256m:虛擬機佔用系統的最小內存
-Xmx512m:虛擬機佔用系統的最大內存
-XX:PermSize:最小棧內存大小。一般報內存不足時,都是說這個太小,堆空間剩餘小於5%就會警告,建議把這個稍微設大一點,不過要視自己機器內存大小來設置
-XX:MaxPermSize:最大棧內存大小。這個也適當大些
-Xmx512M的5%爲25.6M,理論上要求-Xmx的數值與-XX:MaxPermSize必須大於25.6M

現在問題來了,如果我現在不需要啓動eclipse,而是直接啓動tomcat,同樣會報內存溢出的錯誤。咋辦呢?
有兩種方法:
1. 適合用%tomcat_home%/bin中的startup.bat腳本啓動。打開catalina.bat文件(用文本閱讀器即可),找到下面代碼
echo Using CATALINA_BASE:   "%CATALINA_BASE%"
在這段代碼前面加入 set JAVA_OPTS=-Xms256m -Xmx512m -server -XX:PermSize=256M -XX:MaxPermSize=512m即可。
因爲:用startup.bat啓動tomcat服務器,會調用catalina.bat文件,在Catalian.bat文件的166行“rem Execute Java with the applicable properties ”下面會加載系統設置的相關屬性。
其中就有%CATALINA_OPTS%這一項。這樣tomcat在啓動時就會將內存設置爲指定的值。

2. 適合將tomcat作爲系統服務啓動,這時候上面設置CATALINA_OPTS 屬性的方法就不適用了,因爲作爲系統服務的話,系統啓動時調用的是 %tomcat_home%/bin/tomcat5w.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=-Xms512m -Xmx512m

加入 -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m
重起tomcat服務,設置生效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章