天天看點

tomcat的配置與監控

1.tomcat的配置:

a.修改tomcat的最大連接配接數,提升并發處理能力.

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"  enableLookups="false"
	       acceptCount="1000"      
	       maxThreads="300"   
	       minSpareThreads="25" maxSpareThreads="75"
      />
           

  上例子中,設定tomcat的最大連接配接數為1000(最大連接配接數同時受到作業系統能核心的限制).同時最多處理請求數為300.minSpareThreads的含義是,即使所維持的線程池線程最小數,初始化的時候建立線程數為25.maxSpareThreads為75的含義一旦建立的線程超過75,tomcat開始嘗試清理不再需要的線程.enableLookups設為false停用域名解析功能,不将進行請求的客戶機的域名轉換為IP.

b.修改tomcat運作的JVM參數.

set JAVA_OPTS=-server -Xmx1024m -Xms512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
           

  在catalina.bat中添加JVM運作參數如上.使tomcat運作于server mode.增加tomcat的最大使用記憶體為1024m,初始使用記憶體為512m.調整對象堆的大小,XX:MaxNewSize調整Young Generation的堆大小為256m,用于存儲建立對象.XX:MaxPermSize調整為256m,以應對web程式可能需要加載較多類庫.

2.tomcat的管理

a.Web

tomca提供了http://[ip]:[port]/manager/status 對tomcat進行監控,http:// [ip]:[port] /manager/html進行程式部署的管理.具有manager-gui角色的使用者可以登入進行管理.可以進行的操作包括:運作資料的檢視,程式的部署,解除安裝,停止,啟動,重新開機.可以檢視Connector的運作資料,如,請求處理時間,目前連接配接數等.

<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,manager-script,manager-jmx"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>

</tomcat-users>
           

  b.使用jmx對tomcat運作資料進行監控.

在啟動的時候加入一下啟動參數:

set JAVA_OPTS=-Dcom.sun.management.jmxremote
           
-Dcom.sun.management.jmxremote.port=8998 
           
-Dcom.sun.management.jmxremote.ssl=false 
           
-Dcom.sun.management.jmxremote.authenticate=true
           

  開啟jmx服務需要配置jre\lib\management下的jmxremote.access,jmxremote.password檔案.将jmxremote.password檔案的權限設定僅僅目前使用者可讀,文檔原文為:"The password file should be read-only and only accessible by the operating system user Tomcat is running as."

開啟jmx服務之後,可以使用jconsole或者jvisualvm工具對tomcat運作時的jvm資料進行監控.如果開啟了jmx的readwrite權限,也可以編寫代碼對tomcat進行管理,比如停止或者啟動web應用.

tomcat的配置與監控