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模式,并发连接是大于线程数的。
在这里插入图片描述

posted @ 2020-03-26 15:20  盲目的拾荒者  阅读(1481)  评论(0编辑  收藏  举报