JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

          Tomcat內存設置方法

          windows中大家都知道,JAVA程序啟動時都會JVM都會分配一個初始內存和最大內存給這個應用程序。這個初始內存和最大內存在一定程度都會影響程序的性能。比如說在應用程序用到最大內存的時候,JVM是要先去做垃圾回收的動作,釋放被占用的一些內存。
             所以想調整Tomcat的啟動時初始內存和最大內存就需要向JVM聲明,一般的JAVA程序在運行都可以通過中-Xms -Xmx來調整應用程序的初始內存和最大內存:
          如:java -Xms64m -Xmx128m a.jar.
             tomcat的啟動程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內存的設置。在Tomcat在改變這個設置
          有兩種方法:
          1. 適合用%tomcat_home%\bin中的startup.bat腳本啟動,需要在環境變量中加上CATALINA_OPTS這個屬性 。
                 如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
                    ms是最小的,mx是最大,64m, 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\Java\Options
          原值為
          -Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
          -Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
          -Xrs

          加入 -Xms300m -Xmx350m
          重起tomcat服務,設置生效


          最后,測試tomcat大小,jsp頁面
          <%
          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 ***");
          %>

          posted on 2011-01-11 16:57 rogerfan 閱讀(750) 評論(0)  編輯  收藏 所屬分類: 【Java知識】【開源技術】
          主站蜘蛛池模板: 班玛县| 乌鲁木齐县| 阳东县| 崇义县| 沈丘县| 迭部县| 新郑市| 福贡县| 梅河口市| 蛟河市| 岑溪市| 孝昌县| 湛江市| 兴业县| 石首市| 大新县| 栖霞市| 扬州市| 琼中| 道孚县| 泗洪县| 中超| 新兴县| 铁岭县| 屯门区| 临颍县| 宝坻区| 岚皋县| 彰武县| 天峻县| 临清市| 涡阳县| 河曲县| 徐水县| 崇义县| 界首市| 南木林县| 丰城市| 旌德县| 卫辉市| 通山县|