tomcat默認(rèn)最大連接數(shù)與調(diào)整的方法示例
一般來說我們都是用tomcat默認(rèn)的配置做基礎(chǔ)的本地開發(fā),測試及生產(chǎn)肯定不用tomcat啦,正式一點(diǎn)的企業(yè)肯定換大型容器了,當(dāng)然不排除還是用tomcat或者它的集群的,言歸正傳,tomcat的連接數(shù)相關(guān)配置及修改干貨如下:
在tomcat配置文件server.xml中的<Connector />標(biāo)簽配置中,和連接數(shù)相關(guān)的參數(shù)有下面幾個(gè)(如果你現(xiàn)在看肯定都沒有的):
- minProcessors------------------最小空閑連接線程數(shù),用于提高系統(tǒng)處理性能,默認(rèn)值為10
- maxProcessors-----------------最大連接線程數(shù),即:并發(fā)處理的最大請求數(shù),默認(rèn)值為75
- acceptCount---------------------允許的最大連接數(shù),應(yīng)大于等于maxProcessors,默認(rèn)值為100
- enableLookups-----------------是否反查域名,取值為:true或false。為了提高處理能力,應(yīng)設(shè)置為false
- connectionTimeout------------網(wǎng)絡(luò)連接超時(shí),單位:毫秒。設(shè)置為0表示永不超時(shí),這樣設(shè)置有隱患的。通??稍O(shè)置為30000毫秒。
P.S.如果你要手動(dòng)增加這些鏈接相關(guān)參數(shù),那么根據(jù)以上參數(shù)肯定是找不到的,官方文檔提示需要搞另外兩個(gè)參數(shù)才能加大并發(fā)連接數(shù),那就是maxProcessors和acceptCount。
官方原話及翻譯:
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).
如果接收到的并發(fā)請求比當(dāng)前可用的請求處理線程所能處理的更多,則將創(chuàng)建額外的線程到配置的最大值(maxThreads 屬性)。
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).
如果接收到更多的并發(fā)請求,則它們被堆疊在由連接器創(chuàng)建的服務(wù)器套接字內(nèi),直到配置的最大值(acceptCount 屬性)。
所以需要設(shè)置的是maxThreads和acceptCount這兩個(gè)值,兩者的默認(rèn)值分別是200和100,要調(diào)整Tomcat的默認(rèn)最大連接數(shù),可以增加這兩個(gè)屬性的值,并且使acceptCount大于等于maxThreads:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="300" maxThreads="200" />
并發(fā)請求數(shù) <= tomcat最大線程數(shù)200,可以看到200個(gè)請求,響應(yīng)結(jié)果正常
并發(fā)數(shù)(201) >tomcat最大線程數(shù)200.可以看到,因?yàn)閠omcat最大的線程數(shù)為200,201的并發(fā)請求量,超出了并發(fā)處理的數(shù)量200,多出來的1個(gè)請求,需要等待某個(gè)處理中的請求處理完成
請求數(shù)超過最大連接數(shù)300,可以看到有大量的沒有正常響應(yīng)的http請求,原因很簡單,因?yàn)槌^了tomcat設(shè)置的最大連接數(shù),服務(wù)器拒絕了該次請求的連接
增加線程是有成本的,JVM中默認(rèn)情況下在創(chuàng)建新線程時(shí)會(huì)分配大小為1M的線程棧,所以更多的線程異味著更多的內(nèi)存;
更多的線程會(huì)帶來更多的線程上下文切換成本。
springboot中Tomcat配置建議:
最大工作線程數(shù) ,默認(rèn)200(4核8G內(nèi)存,線程數(shù)經(jīng)驗(yàn)值為800,操作系統(tǒng)之間做線程之間切換調(diào)度是有開銷的,不是越多越好),最大連接數(shù)默認(rèn)是10000,等待長度默認(rèn)為100,最小工作空閑線程默認(rèn)10
線程數(shù)的經(jīng)驗(yàn)值為:1核2G內(nèi)存, 線程數(shù)經(jīng)驗(yàn)值為200,;4核8G內(nèi)存,線程數(shù)經(jīng)驗(yàn)值為800
到此這篇關(guān)于tomcat默認(rèn)最大連接數(shù)與調(diào)整的方法示例的文章就介紹到這了,更多相關(guān)tomcat默認(rèn)最大連接數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IntelliJ IDE運(yùn)行Tomcat報(bào)錯(cuò)解決辦法
這篇文章主要介紹了 IntelliJ IDE運(yùn)行Tomcat報(bào)錯(cuò)解決辦法的相關(guān)資料,出現(xiàn)“Unable to ping server at localhost:1099”錯(cuò)誤解決方法,需要的朋友可以參考下2017-08-08tomcat啟動(dòng)異常:子容器啟動(dòng)失敗(a child container failed&n
這篇文章主要介紹了tomcat啟動(dòng)異常:子容器啟動(dòng)失敗(a child container failed during start),如果你也遇到了這個(gè)問題,那么這篇文章應(yīng)該可以幫助到你,一起來看看吧2023-03-03redission-tomcat快速實(shí)現(xiàn)從單機(jī)部署到多機(jī)部署詳解
這篇文章主要介紹了redission-tomcat快速實(shí)現(xiàn)從單機(jī)部署到多機(jī)部署詳解,本文介紹一個(gè)基于redis的tomcat session管理開源項(xiàng)目:redission-tomcat,可無代碼侵入式地快速實(shí)現(xiàn)session共享,需要的朋友可以參考下2019-06-06如何在mac的terminal安裝Apache Tomcat
這篇文章主要介紹了在mac的terminal安裝Apache Tomcat 的方法,需要的朋友參考下吧2017-05-05Java開啟/關(guān)閉tomcat服務(wù)器的方法
這篇文章主要介紹了Java開啟/關(guān)閉tomcat服務(wù)器的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06CentOS設(shè)置IP連接網(wǎng)絡(luò)實(shí)現(xiàn)過程圖解
這篇文章主要介紹了CentOS設(shè)置IP連接網(wǎng)絡(luò)實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Tomcat8使用cronolog來進(jìn)行Catalina.Out日志分割方法
今天通過本文給大家分享如何使用cronolog來分割catalina.out日志文件,對Tomcat Catalina.Out日志分割方法感興趣的朋友跟隨小編一起看看吧2021-09-09