1. 程式人生 > >Tomcat 7最大併發連線數的正確修改方法

Tomcat 7最大併發連線數的正確修改方法

這是個很簡單的問題,但是搜了一圈,發現大家都寫錯了。所以這裡總結一下:

幾乎所有的中文網頁都介紹,要修改Tomcat的預設最大併發連線數,應該進行如下設定(實際上這些步驟是錯誤的):

--------------------------------------------

在tomcat配置檔案server.xml中的<Connector ... />配置中,和連線數相關的引數有:
  
minProcessors:最小空閒連線執行緒數,用於提高系統處理效能,預設值為10
maxProcessors:最大連線執行緒數,即:併發處理的最大請求數,預設值為75
acceptCount:允許的最大連線數,應大於等於maxProcessors,預設值為100
enableLookups

:是否反查域名,取值為:true或false。為了提高處理能力,應設定為false
connectionTimeout:網路連線超時,單位:毫秒。設定為0表示永不超時,這樣設定有隱患的。通常可設定為30000毫秒。
其中和最大連線數相關的引數為maxProcessors和acceptCount。如果要加大併發連線數,應同時加大這兩個引數。
web server允許的最大連線數還受制於作業系統的核心引數設定,通常Windows是2000個左右,Linux是1000個左右。Unix中如何設定這些引數,請參閱Unix常用監控和管理命令

具體的配置資訊:
Java程式碼

  1. <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"
  2. minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"
  3. acceptCount="100" debug="0" connectionTimeout="20000 " useURIValidationHack="false"
  4. protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

--------------------------------------------

但是我仔細查了一圈,發現這個說法只是以訛傳訛,並不適用於Tomcat 5.5以上的版本。這裡先教大家怎麼去查Tomcat的官網:

If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the configured maximum (the value of the maxThreads attribute). If still more simultaneous requests are received, they are stacked up inside the server socket created by the Connector, up to the configured maximum (the value of the acceptCount attribute).

所以我們需要設定的是maxThreads和acceptCount這兩個值:

其中,maxThreads的介紹如下:

The maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200. If an executor is associated with this connector, this attribute is ignored as the connector will execute tasks using the executor rather than an internal thread pool.

而acceptCount的介紹為:

The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 100.

所以兩者的預設值分別是200和100,要調整Tomcat的預設最大連線數,可以增加這兩個屬性的值,並且使acceptCount大於等於maxThreads:

  1. <Connectorport="8080"protocol="HTTP/1.1"
  2.            connectionTimeout="20000"
  3.            redirectPort="8443"acceptCount="500"maxThreads="400"/>

今天就記錄這麼多,希望大家以後在轉載別人的經驗時更用心些,不要老出現上面那些以訛傳訛的情況。也希望能對有些朋友起到幫助。

相關推薦

Tomcat 7併發連線正確修改方法

這是個很簡單的問題,但是搜了一圈,發現大家都寫錯了。所以這裡總結一下: 幾乎所有的中文網頁都介紹,要修改Tomcat的預設最大併發連線數,應該進行如下設定(實際上這些步驟是錯誤的): ----------------------------------------

Tomcat併發優化,修改service.xml效能調優 增加併發連線

可以在控制檯的啟動資訊裡看見,預設狀態下沒有被開啟nio配置,啟動時的資訊,如下: 2010-2-1 12:59:40 org.apache.coyote.http11.Http11Protocol init 資訊: Initializing Coyote HTTP/1.1 on http-8080 2010

Tomcat修改service.xml效能調優 增加併發連線

 詳細配置: <Connector executor="tomcatThreadPool"                port="80" protocol="HTTP/1.1"                 connectionTimeout="20000"

Tomcat的配置併發連線

幾乎所有的中文網頁都介紹,要修改Tomcat的預設最大併發連線數,應該進行如下設定(實際上這些步驟是錯誤的): -------------------------------------------- 在tomcat配置檔案server.xml中的<Connec

IIS併發連線

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

nginx併發連線的思考:worker_processes、worker_connections、worker_rlimit_nofile

無論是看過的nginx有關書還是網上看到的有關nginx 配置說明的文章(http://wiki.nginx.org/EventsModule#worker_connections),無一例外,在講到 worker_connections 和 max_clients這兩個概念的關係時都一致的一筆帶過

MySQL檢視併發連線

MySQL檢視最大併發連線數 MySQL效能相關 最大併發連線數檢視 :show variables like ‘%max_connections%’; 重新設定最大併發連線數:set global max_connections=1000 修改/etc/my.cn

iis併發連線、佇列長度、併發執行緒工作程序數

最大併發連線數:  1、影響因素: a.網站html請求,html中的圖片資源,html中的指令碼資源,其他需要連線下載的資源等等,任何一個資源的請求即一次連線(雖然有的資源請求連線響應很快) b.如果網頁採用框架(框架內部巢狀網頁請求),那麼一個框架即一次連線 c.

Nginx限制訪問速率和併發連線模組--limit (防止DDOS攻擊)

Nginx限制訪問速率和最大併發連線數模組–limit (防止DDOS攻擊) Tengine版本採用http_limit_req_module進行限制 和官方nginx類似,不過支援多個變數,並且支援多個limit_req_zone的設定。比如:

mysql併發連線設定

mysql > show variables like ’max_connections‘; +-----------------+-------+ | Variable_name   | Value | +-----------------+-------+ | max_connections |

Apache優化:修改併發連線

Apache是一個跨平臺的web伺服器,由於其簡單高效、穩定安全的特性,被廣泛應用於計算機技術的各個領域。現在,Apache憑藉其龐大的使用者數,已成為使用者數排名第一的web伺服器。 儘管如此,在實際的生產環境中,我們仍然不可能直接使用預設配置的Apache來充當伺服

修改XP併發連線方法(非大半開連線

最近寫了一個EPOLL的server,正在用WINDOWS下的多執行緒程式做壓力測試,一個程序開500個執行緒,連線到SERVER併發送少量資料,但在XP系統上,在開到第8個程序的時候連線成功數目總是小於500,也就是說整個系統能供使用者主動開啟的連線數不到4000個,在網上

遠端桌面提示 “終端伺服器超出了允許連線” 的解決方法

使用 windows 的遠端桌面連線 windows server 系統,有時候會出現 “終端伺服器超出了最大允許連線數” 的問題。 1 分析 因為 windows 終端服務的預設連結數為 2 個連結,而且當登入桌面後是直接關閉遠端桌面視窗,那麼實際上終

2018年最後一天 VsCode中執行nodeJs程式碼的簡單方法 Pgsql和Mysql的對比 Tomcat併發 Spring AOP不起作用原因

發現2017的隨筆總結依舊適用,想堅持每天寫點東西分享,但感覺每天能原創分享的內容真的不多,尤其是要把自己想分享的內容寫清楚也需要額外花費很多的時間,這讓本來平時就工作比較忙的自己疲於應付,於是乎就轉載自己看到的一些好的文章分享,甚至有些文章自己都沒完全看完就發,湊合著完成了任務,但自己的成就感很低。因此我不

伺服器TCP連線及調優彙總 BIO,NIO,AIO的理解

啟動執行緒數: 啟動執行緒數=【任務執行時間/(任務執行時間-IO等待時間)】*CPU核心數 最佳啟動執行緒數和CPU核心數量成正比,和IO阻塞時間成反比。如果任務都是CPU計算型任務,那麼執行緒數最多不超過CPU核心數,因為啟動再多執行緒,CPU也來不及排程;相反如果是任務需要等待磁碟操作,網路響應,那

單機TCP連線

今天寫程式用到epoll的模型,翻出原先的程式碼跑了一下,看到原來define的最大的處理使用者上限,感覺有些不妥,所以決定測試一下我的ubuntu 16.04,1G記憶體的單機上究竟可以建立多少個連線。雖然網上有很多這方面的案例,但是我還是決定自己測試一下,印象深刻,對問題

linux系統TCP連線限制

本部落格為轉載,原文請參見<a href="http://blog.51cto.com/jschu/1755279">http://blog.51cto.com/jschu/1755279</a> web伺服器和cache伺服器,高併發下,socke

Apache的工作模式和併發請求設定

什麼是apache的工作模式? 個人理解:apache的工作模式就是apache在執行時候的記憶體分配,程序和執行緒的使用方式。舉個例子:一臺apache正在執行的伺服器,如果有個使用者訪問這個apache,那麼apache是啟用一個程序來處理使用者的請求呢?還是在已有的

Windows 下單機TCP連線

在做Socket 程式設計時,我們經常會要問,單機最多可以建立多少個 TCP 連線,本文將介紹如何調整系統引數來調整單機的最大TCP連線數。 Windows 下單機的TCP連線數有多個引數共同決定,下面一一介紹: 最大TCP連線數 [HKEY_LOCAL_MACHI

設定springboot自帶tomcat連線併發

從原始碼來看,最大連線數和最大併發數預設是10000和200 可以通過工程下的application.yml配置檔案來改變這個值 server:   tomcat:     uri-enco