Tomcat maxThreads maxConnections acceptCount參數(shù)說(shuō)明

首先看官網(wǎng)對(duì)這個(gè)三個(gè)參數(shù)的說(shuō)明:
http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

Attribute Description
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.
maxConnections The maximum number of connections that the server will accept and process at any given time. When this number has been reached, the server will accept, but not process, one further connection. This additional connection be blocked until the number of connections being processed falls below maxConnections at which point the server will start accepting and processing new connections again. Note that once the limit has been reached, the operating system may still accept connections based on the acceptCount setting. The default value varies by connector type. For BIO the default is the value of maxThreads unless an Executor is used in which case the default will be the value of maxThreads from the executor. For NIO the default is 10000. For APR/native, the default is 8192.
Note that for APR/native on Windows, the configured value will be reduced to the highest multiple of 1024 that is less than or equal to maxConnections. This is done for performance reasons.
If set to a value of -1, the maxConnections feature is disabled and connections are not counted.
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. Note that if an executor is configured any value set for this attribute will be recorded correctly but it will be reported (e.g. via JMX) as -1 to make clear that it is not used.

用httpClient作為客戶端對(duì)不同配置分別發(fā)10個(gè)請(qǐng)求鹃唯,服務(wù)端死循環(huán)讓請(qǐng)求一直沒(méi)有返回铭污,然后查看連接情況。
注意饮焦,在用httpClient發(fā)送請(qǐng)求的時(shí)候一定要設(shè)置這個(gè)參數(shù)伏嗜,否則默認(rèn)最多只能發(fā)送兩個(gè)并發(fā)請(qǐng)求府喳。
// Increase default max connection per route to 20
cm.setDefaultMaxPerRoute(20);

一##

tomcat配置:
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxConnections="3" maxThreads="2" acceptCount="4" />

連接情況7個(gè)為ESTABLISHED落塑,3個(gè)為SYN_SENT:

netstat -an | grep 8090##

tcp4 158 0 127.0.0.1.8090 127.0.0.1.61515 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61514 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61513 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61512 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61511 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61510 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61509 ESTABLISHED
tcp4 0 0 127.0.0.1.61510 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61511 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61512 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61513 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61514 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61515 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61517 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61509 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61518 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61516 127.0.0.1.8090 SYN_SENT
tcp46 0 0 *.8090 . LISTEN

二##

tomcat配置:
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxConnections="5" maxThreads="2" acceptCount="1" />

連接情況6個(gè)為ESTABLISHED蛤克,4個(gè)為SYN_SENT:

netstat -an | grep 8090#

tcp4 0 0 127.0.0.1.61672 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61671 127.0.0.1.8090 SYN_SENT
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61663 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61670 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61669 ESTABLISHED
tcp4 158 0 127.0.0.1.8090 127.0.0.1.61668 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61662 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61661 ESTABLISHED
tcp4 0 0 127.0.0.1.61669 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61668 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61661 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61667 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61662 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61663 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61664 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61670 127.0.0.1.8090 ESTABLISHED
tcp46 0 0 *.8090 . LISTEN

三##

tomcat配置:
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxConnections="0" maxThreads="2" acceptCount="1" />

連接情況3個(gè)為ESTABLISHED,7個(gè)為SYN_SENT:

netstat -an | grep 8090#

tcp4 158 0 127.0.0.1.8090 127.0.0.1.61748 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61743 ESTABLISHED
tcp4 0 0 127.0.0.1.8090 127.0.0.1.61742 ESTABLISHED
tcp4 0 0 127.0.0.1.61744 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61748 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61743 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61742 127.0.0.1.8090 ESTABLISHED
tcp4 0 0 127.0.0.1.61749 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61747 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61750 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61751 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61745 127.0.0.1.8090 SYN_SENT
tcp4 0 0 127.0.0.1.61746 127.0.0.1.8090 SYN_SENT
tcp46 0 0 *.8090 . LISTEN

四##

tomcat配置:
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxConnections="0" maxThreads="2" acceptCount="0" />

這次改為發(fā)了101個(gè)請(qǐng)求闷祥,結(jié)果連接狀態(tài)都為ESTABLISHED娱颊。

做這幾個(gè)實(shí)驗(yàn),主要是讀文檔的時(shí)候沒(méi)有弄清楚acceptCount是當(dāng)maxThreads達(dá)到最大值時(shí)起作用還是當(dāng)maxConnections達(dá)到最大值時(shí)起作用凯砍。

最后通過(guò)以上得出結(jié)論:##

1)tomcat可接受最大連接數(shù)為maxConnections+acceptCount箱硕;
2)當(dāng)maxConnections="0",maxConnections的值等于maxThreads悟衩;
3)當(dāng)acceptCount="0"剧罩,acceptCount的值不是默認(rèn)的100,具體多少取決操作系統(tǒng)的配置(后面看下tomcat的源碼)座泳。
4)maxThreads就是真正同時(shí)在處理請(qǐng)求的業(yè)務(wù)線程(可以通過(guò)看stack日志確定)惠昔。

其實(shí)上面這些通過(guò)看tomcat的源碼最為準(zhǔn)確了,做這個(gè)測(cè)試主要是為了打發(fā)下時(shí)間挑势。另外對(duì)tcp的連接狀態(tài)不太清楚的可以看下tcp/ip詳解的第18章镇防。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市潮饱,隨后出現(xiàn)的幾起案子来氧,更是在濱河造成了極大的恐慌,老刑警劉巖香拉,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啦扬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凫碌,警方通過(guò)查閱死者的電腦和手機(jī)扑毡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)证鸥,“玉大人僚楞,你說(shuō)我怎么就攤上這事⊥鞑悖” “怎么了泉褐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鸟蜡。 經(jīng)常有香客問(wèn)我膜赃,道長(zhǎng),這世上最難降的妖魔是什么揉忘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任跳座,我火速辦了婚禮端铛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疲眷。我一直安慰自己禾蚕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布狂丝。 她就那樣靜靜地躺著换淆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪几颜。 梳的紋絲不亂的頭發(fā)上倍试,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音蛋哭,去河邊找鬼县习。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谆趾,可吹牛的內(nèi)容都是我干的躁愿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼棺妓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼攘已!你這毒婦竟也來(lái)了炮赦?” 一聲冷哼從身側(cè)響起怜跑,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吠勘,沒(méi)想到半個(gè)月后性芬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剧防,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年植锉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峭拘。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俊庇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸡挠,到底是詐尸還是另有隱情辉饱,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布拣展,位于F島的核電站彭沼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏备埃。R本人自食惡果不足惜姓惑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一褐奴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧于毙,春花似錦敦冬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至烂翰,卻和暖如春夯缺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甘耿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工踊兜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人佳恬。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓捏境,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親毁葱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子垫言,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容