Tomcat線程池配置


以Tomcat8.5為例,HTTP1.1

官方文檔配置地址

https://tomcat.apache.org/tomcat-8.5-doc/config/http.html

<Connector port="8080" acceptCount="100" maxConnections="200" minSpareThreads="10"
           maxThreads="200"/>
  • acceptCount:請求等到隊列大小。當Tomcat沒有空閑線程處理連接請求時,新來的鏈接請求將放入等待隊列,默認為100。當隊列超過acceptCount后新連接將被拒絕。

  • maxConnections:Tomcat能處理的最大並發連接數.當超過后還會接收連接並放入等待隊列(acceptCount控制),連接會等待,不能被處理。BIO默認是maxThreads. 對於NIO和NIO2,默認值為10000。對於APR /native,默認值為8192。

    僅對於NIO / NIO2,將該值設置為-1將禁用maxConnections功能,並且不計算連接數。

  • minSpareThreads:線程池最小線程數,默認為10。該配置指定線程池可以維持的空閑線程數量。(始終保持運行狀態的最小線程數。 這包括活動線程和空閑線程。 如果未指定,則使用默認值10。 如果執行程序與此連接器相關聯,則此屬性將被忽略,因為連接器將使用執行程序而不是內部線程池執行任務。 請注意,如果配置了執行程序,則將正確記錄為此屬性設置的任何值,但會將其報告為(例如,通過JMX)-1,以表明未使用該值。)

  • maxThreads:線程池最大線程數,默認為200。當線程池空閑一段時間后會解釋放到只保留minSpareThreads個線程。

舉例,假設maxThreads=100,maxConnections=50,acceptCount=50,假設並發請求為200,則50個線程並發處理50個並發連接,50個連接進入等待隊列,剩余100個將被拒絕。也就是說Tomca最大並發線程數是由maxThreads和maxConnections中最小的一個決定的。BIO場景下maxConnections和maxThreads是一樣的,當我們需要一個長連接場景時,應使用NIO模式,並發連接是大於線程數的。
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM