天天看點

檢視和設定tomcat記憶體

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/JavaOptions

原值為

-Dcatalina.home="C:/ApacheGroup/Tomcat 5.0"

-Djava.endorsed.dirs="C:/ApacheGroup/Tomcat 5.0/common/endorsed"

-Xrs

加入 -Xms300m -Xmx350m

重起tomcat服務,設定生效.

測試tomcat大小,jsp頁面

Code:

  1. <%  
  2. Runtime lRuntime = Runtime.getRuntime();  
  3. out.println("*** BEGIN MEMORY STATISTICS ***<br/>");  
  4. out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>");  
  5. out.println("Max   Memory: "+lRuntime.maxMemory()+"<br/>");  
  6. out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");  
  7. out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");  
  8. out.println("*** END MEMORY STATISTICS ***");  
  9. %>   

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/evane1890/archive/2008/11/08/3248966.aspx