Tomcat - Springboot啟動的時候初始化的線程池默認配置


之前有個項目上的同事突然問我,我們XX服務最大的並發量是多少,因為我們使用的是springboot來運行的服務,配置文件中也沒有配置其他的參數,應該就是使用默認的tomcat的線程配置了;因此整理了一下:

server:
    port: 12021
    tomcat:
      uri-encoding: UTF-8
      max-threads: 8           #最大並發數,最佳線程數目 = ((線程等待時間+線程CPU時間)/線程CPU時間 )* CPU數目,1、CPU密集型:操作內存處理的業務,一般線程數設置為:CPU核數 + 1 或者 CPU核數*2。核數為4的話,一般設置 5 或 8 。 2、IO密集型:文件操作,網絡操作,數據庫操作,一般線程設置為:cpu核數 / (1-0.9),核數為4的話,一般設置 40
      max-connections: 20000   #接受和處理的最大連接數
      min-SpareThreads: 20     #初始化時創建的線程數
      acceptCount: 700         #可以放到處理隊列中的請求數

最佳線程數目 = ((線程等待時間+線程CPU時間)/線程CPU時間 )* CPU數目,

1、CPU密集型:操作內存處理的業務,一般線程數設置為:CPU核數 + 1 或者 CPU核數*2。核數為4的話,一般設置 5 或 8 。

2、IO密集型:文件操作,網絡操作,數據庫操作,一般線程設置為:cpu核數 / (1-0.9),核數為4的話,一般設置 40 

maxThreads="8"  //最大並發數 
minSpareThreads="100"///初始化時創建的線程數
maxSpareThreads="500"///一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。
acceptCount="700"// 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理

maxThreads 客戶請求最大線程數 
minSpareThreads Tomcat初始化時創建的 socket 線程數 
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數 
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名 
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 端口 
acceptAccount 監聽端口隊列最大數,滿了之后客戶請求會被拒絕(不能小於maxSpareThreads ) 
connectionTimeout 連接超時 
minProcessors 服務器創建時的最小處理線程數 
maxProcessors 服務器同時最大處理線程數 
URIEncoding URL統一編碼

maxThreads:處理的最大並發請求數,默認值200
minSpareThreads:最小線程數始終保持運行,默認值10
maxConnections:在給定時間接受和處理的最大連接數,默認值10000
參考文獻:http://tomcat.apache.org/tomcat-8.0-doc/config/http.html#HTTP/1.1_and_HTTP/1.0_Support

微信公眾號,搜索:zhangdaopin,也可方便快捷的查看本人的博客哦,謝謝~


免責聲明!

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



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