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