Tomcat高併發設定

2021-09-30 20:43:32 字數 1080 閱讀 4104

在配合做壓力測試的時候,有時候提高併發數的時候 莫名的出現伺服器卡頓現象,伺服器拒絕連線,前端出現502 bad gateway等錯誤資訊,而後端伺服器日誌確沒有錯誤提示。

可能原因是tomcat高併發下連線數設定問題,或者沒有設定,採用預設的。

在tomcat配置檔案server.xml中的配置中,和連線數相關的引數有:

minprocessors:最小空閒連線線程數,用於提高系統處理效能,預設值為10

maxprocessors:最大連線線程數,即:併發處理的最大請求數,預設值為75

acceptcount:允許的最大連線數,應大於等於maxprocessors,預設值為100

enablelookups:是否反查網域名稱,取值為:true或false。為了提高處理能力,應設定為false

connectiontimeout: 網路連線超時,單位:毫秒。設定為0表示永不超時,這樣設定有隱患的。通常可設定為30000毫秒。 其中和最大連線數相關的引數為maxprocessors和acceptcount。如果要加大併發連線數,應同時加大這兩個引數。 web server允許的最大連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。

如:

maxthreads="150"     表示最多同時處理150個連線   

minsparethreads="25" 表示即使沒有人使用也開這麼多空執行緒等待

maxsparethreads="75" 表示如果最多可以空75個執行緒,例如某時刻有80人訪問,之後沒有人訪問了,則tomcat不會保留80個空執行緒,而是關閉5個空的。

acceptcount=「100」 當同時連線的人數達到maxthreads時,還可以接收排隊的連線,超過這個連線的則直接返回拒絕連線。

設定如下

acceptcount對暫時無法執行的請求進行佇列儲存,超出設定則拒絕連線。

測試發現無法限制住最大併發數,所有請求都可以依次執行,每次有1個執行緒執行(maxthreads=1)

最大併發數如果過大,大於acceptcount值好幾倍,會隨機出現連線被拒絕。

tomcat 高併發優化

acceptcount 5000 maxthreads tomcat起動的最大執行緒數,即同時處理的任務個數,預設值為200minsparethreads 表示空閒的執行緒數,據我的理解,類似於連線池acceptcount 當tomcat起動的執行緒數達到最大時,接受排隊的請求個數,預設值為100 ...

tomcat高併發apr io模型

linux上配置tomcat apr高併發io模型 前情 本人的開發環境 centos7,tomcat8.0.44,jdk1.7.0 79 安裝apr遇到問題 tomcat8.044 需要openssl1.02以上版本 準備條件 必須有網路 安裝gcc gcc 環境 安裝openssl的庫 安裝ap...

tomcat高併發配置調優

info maximum number of threads 200 created for connector with address null and port 8091 nameprefix http 8088 exec 執行緒的名字字首,用於標記執行緒名稱 prestartminspare...