Tomcat內(nèi)存設(shè)置方法
windows中大家都知道,JAVA程序啟動(dòng)時(shí)都會(huì)JVM都會(huì)分配一個(gè)初始內(nèi)存和最大內(nèi)存給這個(gè)應(yīng)用程序。這個(gè)初始內(nèi)存和最大內(nèi)存在一定程度都會(huì)影響程序的性能。比如說(shuō)在應(yīng)用程序用到最大內(nèi)存的時(shí)候,JVM是要先去做垃圾回收的動(dòng)作,釋放被占用的一些內(nèi)存。?
???所以想調(diào)整Tomcat的啟動(dòng)時(shí)初始內(nèi)存和最大內(nèi)存就需要向JVM聲明,一般的JAVA程序在運(yùn)行都可以通過(guò)中-Xms -Xmx來(lái)調(diào)整應(yīng)用程序的初始內(nèi)存和最大內(nèi)存:
如:java -Xms64m -Xmx128m a.jar.
???tomcat的啟動(dòng)程序是包裝過(guò)的,不能直接使用java -X..... tomcat.*來(lái)改變內(nèi)存的設(shè)置。在Tomcat在改變這個(gè)設(shè)置?
有兩種方法:?
1.?適合用%tomcat_home%/bin中的startup.bat腳本啟動(dòng),需要在環(huán)境變量中加上CATALINA_OPTS這個(gè)屬性?。
???????如?SET CATALINA_OPTS= -Xms64m -Xmx512m;
??????????ms是最小的,mx是最大,64m, 512m分別是指內(nèi)存的初始和最大容量.
因?yàn)椋河胹tartup.bat啟動(dòng)tomcat服務(wù)器,會(huì)調(diào)用catalina.bat文件,在Catalian.bat文件的166行“rem Execute Java with the applicable properties ”下面會(huì)加載系統(tǒng)設(shè)置的相關(guān)屬性。
其中就有%CATALINA_OPTS%這一項(xiàng)。這樣tomcat在啟動(dòng)時(shí)就會(huì)將內(nèi)存設(shè)置為指定的值。
2.?適合將tomcat作為系統(tǒng)服務(wù)啟動(dòng),這時(shí)候上面設(shè)置CATALINA_OPTS?屬性的方法就不適用了,因?yàn)樽鳛橄到y(tǒng)服務(wù)的話,系統(tǒng)啟動(dòng)時(shí)調(diào)用的是?%tomcat_home%/bin/tomcat5w.exe,他讀取注冊(cè)表中的值,而不是catalina.bat的設(shè)置,因此需要修改注冊(cè)表:
解決辦法:
修改注冊(cè)表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
加入?-Xms300m -Xmx350m
重起tomcat服務(wù),設(shè)置生效
最后,測(cè)試tomcat大小,jsp頁(yè)面
<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>");
out.println("Max?? Memory: "+lRuntime.maxMemory()+"<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

