tomcat6 高併發配置 與優化

server.xml配置

1.  <Connectorport="8080"protocol="HTTP/1.1"web

2.  maxThreads="30000"數據庫

3.  minSpareThreads="512"tomcat

4.  maxSpareThreads="2048"服務器

5.  enableLookups="false"網絡

6.  redirectPort="8443"併發

7.  acceptCount="35000"負載均衡

8.  debug="0"socket

9.  connectionTimeout="40000"性能

10. disableUploadTimeout="true"編碼

11. URIEncoding="UTF-8"/>

參數說明 :
connectionTimeout
網絡鏈接超時,單位:毫秒。設置爲 0 表示永不超時,這樣設置有隱患的。一般可設置爲 30000 毫秒。
keepAliveTimeout
長鏈接最大保持時間(毫秒)。此處爲 15 秒。
maxKeepAliveRequests
最大長鏈接個數( 1 表示禁用, -1 表示不限制個數,默認 100 個。通常設置在 100~200 之間)
maxHttpHeaderSize
http
  請求頭信息的最大程度,超過此長度的部分不予處理。通常 8K
URIEncoding
指定 Tomcat   容器的 URL   編碼格式。
acceptCount
指定當全部可使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,超過這個數的請求將不予處理,默認爲 10 個。
disableUploadTimeout
上傳時是否使用超時機制
enableLookups
是否反查域名,取值爲: true   false 。爲了提升處理能力,應設置爲 false
maxSpareThreads
最大空閒鏈接數,一旦建立的線程超過這個值, Tomcat   就會關閉再也不須要的 socket 線程 The default value is 50.
maxThreads
最多同時處理的鏈接數, Tomcat   使用線程來處理接收的每一個請求。這個值表示 Tomcat   可建立的最大的線程數。
minSpareThreads
最小空閒線程數, Tomcat   初始化時建立的線程數 .
minProcessors
最小空閒鏈接線程數,用於提升系統處理性能,默認值爲 10
maxProcessors
最大鏈接線程數,即:併發處理的最大請求數,默認值爲 75


提升 Tomcat 的併發能力一些方法
1
Apache + Tomcat   結合起來用 Apache   負責靜態頁面, Tomcat 負責動態頁面,同時減小 connectionTimeout 的時間,以應對併發量大線程回收來不及的狀況。
2
、壓力過大的問題,能夠作負載均衡,一個 TOMCAT 不管如何也不可能擔當如此多的線程負載,並且 JVM 過大,其內存管理成本將顯著加大。 2G 的內存,作 3-4 TOMCAT 實例( 512RAM*4 ),更爲科學合理。
3
、數據庫鏈接池,很多人,都推薦使用 C3P0 ,能提升訪問數據庫的併發性能好幾倍。(有博文稱使用 tomcat 自帶的 jdbc-pool 更好,還沒試過)
4
、採用 Tomcat 集羣能夠最大程度的發揮服務器的性能,能夠在配置較高的服務器上部署多個 Tomcat ,也能夠在多臺服務器上分別部署   Tomcat Apache Tomcat 整合的方式仍是 JK 方式。通過驗證,系統對大用戶量使用的響應方面, Apache+3Tomccat 集羣 > Apache+2Tomcat 集羣 > Apache 集成 Tomcat > 單個 Tomcat 。而且採用 Apache+ Tomcat 集羣的部署方式時,若是一個 Tomcat 出現宕機,系統能夠繼續使用,因此在硬件系統性能足夠優越的狀況下,須要儘可能發揮軟件的性能,能夠採用增長 Tomcat 集羣的方式。
5.
  打開 KeepAlive 支持
KeepAlive on, KeepAliveTimeout 15 MaxKeepAliveRequests 1000
根據實際經驗,經過 Apache Tomcat 集羣的方式提升系統性能的效果十分明顯,這種方式能夠最大化的利用硬件資源,經過多個 Tomcat 的處理來分擔單 Tomcat 時的壓力。
web server
容許的最大鏈接數還受制於操做系統的內核參數設置,一般 Windows 2000 個左右, Linux 1000 個左右。
相關文章
相關標籤/搜索