最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tomcat配置之連接數(shù)設(shè)置方式

 更新時間:2025年10月21日 16:17:26   作者:吳名氏.  
文章介紹了Tomcat處理請求的流程及其關(guān)鍵參數(shù),包括maxConnections(最大連接數(shù))、acceptCount(等待隊列長度)和maxThreads(最大處理線程數(shù)),并分析了這些參數(shù)的配置及其對服務(wù)器性能的影響,強調(diào)需根據(jù)實際場景優(yōu)化設(shè)置

1 連接數(shù)參數(shù)介紹

回顧一下Tomcat處理請求的過程

  • 在accept隊列中接收連接(當客戶端向服務(wù)器發(fā)送請求時,如果客戶端與OS完成三次握手建立了連接,則OS將該連接放入accept隊列);
  • 在連接中獲取請求的數(shù)據(jù),生成request;
  • 調(diào)用servlet容器處理請求;返回response。

對應(yīng)的,Connector中的幾個參數(shù)功能如下:

1.1 acceptCount

accept隊列的長度;當accept隊列中連接的個數(shù)達到acceptCount時,隊列滿,進來的請求一律被拒絕,默認值是100(跟tomcat版本有關(guān)系)

1.2 maxConnections

Tomcat在任意時刻接收和處理的最大連接數(shù)。當Tomcat接收的連接數(shù)達到maxConnections時,Acceptor線程不會讀取accept隊列中的連接;這時accept隊列中的線程會一直阻塞著,直到Tomcat接收的連接數(shù)小于maxConnections。

如果設(shè)置為-1,則連接數(shù)不受限制。默認值與連接器使用的協(xié)議有關(guān):NIO的默認值是10000,APR/native的默認值是8192,而BIO的默認值為maxThreads(如果配置了Executor,則默認值是Executor的maxThreads)。在windows下,APR/native的maxConnections值會自動調(diào)整為設(shè)置值以下最大的1024的整數(shù)倍;如設(shè)置為2000,則最大值實際是1024。

1.3 maxThreads

請求處理線程的最大數(shù)量。默認值是200(Tomcat7和8都是的)。

如果該Connector綁定了Executor,這個值會被忽略,因為該Connector將使用綁定的Executor,而不是內(nèi)置的線程池來執(zhí)行任務(wù)。

maxThreads規(guī)定的是最大的線程數(shù)目,并不是實際running的CPU數(shù)量;實際上,maxThreads的大小比CPU核心數(shù)量要大得多。

這是因為,處理請求的線程 真正用于計算的時間可能很少,大多數(shù)時間可能在阻塞,如等待數(shù)據(jù)庫返回數(shù)據(jù)、等待硬盤讀寫數(shù)據(jù)等。

因此,在某一時刻,只有少數(shù)的線程 真正的在使用物理CPU,大多數(shù)線程都在等待;因此線程數(shù)遠大于物理核心數(shù)才是合理的。

換句話說,Tomcat通過使用比CPU核心數(shù)量多得多的線程數(shù),可以使CPU忙碌起來,大大提高CPU的利用率。

2 參數(shù)配置

為了確保服務(wù)不會被過多的http長連接壓垮,我們需要對tomcat設(shè)定個最大連接數(shù),超過這個連接數(shù)的請求會拒絕,讓其負載到其它機器,達到保護自己的同時起到連接數(shù)負載均衡的作用。

tomcat的并發(fā)數(shù)由以下兩個參數(shù)決定:

  • maxThreads:tomcat啟動的最大線程數(shù),即同時處理的任務(wù)個數(shù),默認值為200
  • acceptCount:當tomcat起動的線程數(shù)達到最大時,接受排隊的請求個數(shù),默認值為100

這兩個值如何起作用,請看下面三種情況

  • 情況1:接受一個請求,此時tomcat起動的線程數(shù)沒有到達maxThreads,tomcat會起動一個線程來處理此請求。
  • 情況2:接受一個請求,此時tomcat起動的線程數(shù)已經(jīng)到達maxThreads,tomcat會把此請求放入等待隊列,等待空閑線程。
  • 情況3:接受一個請求,此時tomcat起動的線程數(shù)已經(jīng)到達maxThreads,等待隊列中的請求個數(shù)也達到了acceptCount,此時tomcat會直接拒絕此次請求,返回connection refused

默認情況下,tomcat最大連接數(shù)和最大并發(fā)數(shù)默認是10000和200

同時加上maxConnections

原來tomcat最大連接數(shù)取決于maxConnections這個值加上acceptCount這個值,在連接數(shù)達到了maxConenctions之后,tomcat仍會保持住連接,但是不處理,等待其它請求處理完畢之后才會處理這個請求。

tomcat的最大連接數(shù)參數(shù)是maxConnections,這個值表示最多可以有多少個socket連接到tomcat上

BIO模式下默認最大連接數(shù)是它的最大線程數(shù)(缺省是200),NIO模式下默認是10000,APR模式則是8192(windows上則是低于或等于maxConnections的1024的倍數(shù))。如果設(shè)置為-1則表示不限制。

3 總結(jié)

3.1 tomcat能支持最大連接數(shù)

由maxConnections加上acceptCount來決定。同時maxThreads如何設(shè)定?

一般的服務(wù)器操作都包括兩方面:1計算(主要消耗cpu),2等待(io、數(shù)據(jù)庫等)

  • 第一種極端情況,如果我們的操作是純粹的計算,那么系統(tǒng)響應(yīng)時間的主要限制就是cpu的運算能力,此時maxThreads應(yīng)該盡量設(shè)的小,降低同一時間內(nèi)爭搶cpu的線程個數(shù),可以提高計算效率,提高系統(tǒng)的整體處理能力。
  • 第二種極端情況,如果我們的操作純粹是IO或者數(shù)據(jù)庫,那么響應(yīng)時間的主要限制就變?yōu)榈却獠抠Y源,此時maxThreads應(yīng)該盡量設(shè)的大,這樣才能提高同時處理請求的個數(shù),從而提高系統(tǒng)整體的處理能力。此情況下因為tomcat同時處理的請求量會比較大,所以需要關(guān)注一下tomcat的虛擬機內(nèi) 存設(shè)置和linux的open file限制。

現(xiàn)實應(yīng)用中,我們的操作都會包含以上兩種類型(計算、等待),所以maxThreads的配置并沒有一個最優(yōu)值,一定要根據(jù)具體情況來配置。

最好的做法是:在不斷測試的基礎(chǔ)上,不斷調(diào)整、優(yōu)化,才能得到最合理的配置。

acceptCount的配置,我一般是設(shè)置的跟maxThreads一樣大,這個值應(yīng)該是主要根據(jù)應(yīng)用的訪問峰值與平均值來權(quán)衡配置的。

如果設(shè)的較小,可以保證接受的請求較快相應(yīng),但是超出的請求可能就直接被拒絕

如果設(shè)的較大,可能就會出現(xiàn)大量的請求超時的情況,因為我們系統(tǒng)的處理能力是一定的

3.2 linux下使用tomcat命令備注

3.2.1 linux下查看apache當前并發(fā)訪問數(shù)

netstat -an | grep ESTABLISHED | wc -l  

對比httpd.conf中MaxClients的數(shù)字差距多少。

3.2.2 查看有多少個進程數(shù)

ps aux|grep httpd|wc -l  

3.2.3 可以使用如下參數(shù)查看數(shù)據(jù)

ps -ef | grep httpd | wc -l
1388  

統(tǒng)計httpd進程數(shù),每個請求會啟動一個進程,使用于Apache服務(wù)器。

1388表示Apache能夠處理1388個并發(fā)請求,這個值A(chǔ)pache可根據(jù)負載情況自動調(diào)整。

#netstat -nat|grep -i "80"|wc -l

  4341

netstat -an會打印系統(tǒng)當前網(wǎng)絡(luò)鏈接狀態(tài),而grep -i "80"是用來提取與80端口有關(guān)的連接的,wc -l進行連接數(shù)統(tǒng)計。

最終返回的數(shù)字就是當前所有80端口的請求總數(shù)。

netstat -na|grep ESTABLISHED|wc -l  
376

netstat -an會打印系統(tǒng)當前網(wǎng)絡(luò)鏈接狀態(tài),而grep ESTABLISHED 提取出已建立連接的信息。 然后wc -l統(tǒng)計。

最終返回的數(shù)字就是當前所有80端口的已建立連接的總數(shù)。

Bat代碼

netstat -nat||grep ESTABLISHED|wc

可查看所有建立連接的詳細記錄

查看Apache的并發(fā)請求數(shù)及其TCP連接狀態(tài):

Linux命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回結(jié)果示例:

  LAST_ACK 5

  SYN_RECV 30

  ESTABLISHED 1597

  FIN_WAIT1 51

  FIN_WAIT2 504

  TIME_WAIT 1057

其中的

  • SYN_RECV:表示正在等待處理的請求數(shù);
  • ESTABLISHED:表示正常數(shù)據(jù)傳輸狀態(tài);
  • TIME_WAIT:表示處理完畢,等待超時結(jié)束的請求數(shù)。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Apache Tomcat服務(wù)器版本號隱藏的幾種方法

    Apache Tomcat服務(wù)器版本號隱藏的幾種方法

    本文主要介紹了Apache Tomcat服務(wù)器版本號隱藏的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • redission-tomcat快速實現(xiàn)從單機部署到多機部署詳解

    redission-tomcat快速實現(xiàn)從單機部署到多機部署詳解

    這篇文章主要介紹了redission-tomcat快速實現(xiàn)從單機部署到多機部署詳解,本文介紹一個基于redis的tomcat session管理開源項目:redission-tomcat,可無代碼侵入式地快速實現(xiàn)session共享,需要的朋友可以參考下
    2019-06-06
  • Tomcat配置SSL證書的方法

    Tomcat配置SSL證書的方法

    這篇文章主要介紹了Tomcat配置SSL證書的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 解決tomcat出現(xiàn):java.lang.IllegalStateException:無輸出目錄問題

    解決tomcat出現(xiàn):java.lang.IllegalStateException:無輸出目錄問題

    這篇文章主要介紹了解決tomcat出現(xiàn):java.lang.IllegalStateException:無輸出目錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 在Windows下如何安裝Tomcat服務(wù)器搭建

    在Windows下如何安裝Tomcat服務(wù)器搭建

    這篇文章主要介紹了在Windows下如何安裝Tomcat服務(wù)器搭建的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • tomcat服務(wù)器宕機解決方案

    tomcat服務(wù)器宕機解決方案

    這篇文章主要介紹了tomcat服務(wù)器宕機解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • tomcat訪問(access)日志配置和記錄Post請求參數(shù)

    tomcat訪問(access)日志配置和記錄Post請求參數(shù)

    這篇文章主要介紹了tomcat訪問(access)日志配置和記錄Post請求參數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Tomcat starup.bat腳本開機自啟動的實現(xiàn)

    Tomcat starup.bat腳本開機自啟動的實現(xiàn)

    本文主要介紹了Tomcat starup.bat腳本開機自啟動的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Linux小技巧分享之如何重新啟動tomcat

    Linux小技巧分享之如何重新啟動tomcat

    在Linux系統(tǒng)下,如何重啟Tomcat呢?答曰:使用命令操作的!咳咳,這不是廢話嗎。其實tomcat的安裝目錄有關(guān)閉,重啟的腳本的,只要執(zhí)行他們就可以了,下面我們來詳細說明下
    2014-08-08
  • 詳解Tomcat7中WebSocket初探

    詳解Tomcat7中WebSocket初探

    隨著Html5技術(shù)的普及,主流瀏覽器對HTML5標準的支持越來越好,利用瀏覽器原生支持WebSocket就可以輕松的實現(xiàn)上面的功能。有興趣的可以了解一下。
    2017-01-01

最新評論

西吉县| 郧西县| 图木舒克市| 新田县| 越西县| 剑川县| 宣化县| 山东| 新野县| 高雄市| 黄石市| 江口县| 黔南| 林口县| 根河市| 安阳县| 边坝县| 华阴市| 延边| 乳源| 定西市| 民勤县| 泸西县| 西充县| 桃源县| 罗源县| 黔南| 长武县| 缙云县| 武威市| 廉江市| 贵德县| 喀喇沁旗| 霍林郭勒市| 通河县| 安康市| 蓬莱市| 文昌市| 红桥区| 宁远县| 留坝县|