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,也可方便快捷的查看本人的博客哦,谢谢~

posted @ 2022-01-27 18:36  zhangdaopin  阅读(3944)  评论(0编辑  收藏  举报