优化Tomcat的maxConnections、maxThreads、acceptCount三大配置

网友投稿 1345 2022-05-30

目录

配置项

详解:maxConnections、maxThreads、acceptCount

Tomcat的maxConnections、maxThreads、acceptCount三大配置,分别表示最大连接数,最大线程数、最大的等待数,可以通过application.yml配置文件来改变这个三个值,一个标准的示例如下:

配置项

server: tomcat: uri-encoding: UTF-8 #最大工作线程数,默认200, 4核8g内存,线程数经验值800 #操作系统做线程之间的切换调度是有系统开销的,所以不是越多越好。 max-threads: 1000 # 等待队列长度,默认100 accept-count: 1000 max-connections: 20000 # 最小工作空闲线程数,默认10, 适当增大一些,以便应对突然增长的访问量 min-spare-threads: 100 connection-timeout: 120000 # 超时时间

min-spare-threads:最小备用线程数,tomcat启动时的初始化的线程数。

max-threads:Tomcat可创建的最大的线程数,每一个线程处理一个请求,超过这个请求数后,客户端请求只能排队,等有线程释放才能处理。(建议这个配置数可以在服务器CUP核心数的200~250倍之间)

accept-count:当调用Web服务的HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

max-connections:这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于(max-threads)+(accept-count)。

connection-timeout:最长等待时间,如果没有数据进来,等待一段时间后断开连接,释放线程。

详解:maxConnections、maxThreads、acceptCount

tomcat中maxConnections、maxThreads、acceptCount的具体含义是什么呢?参考官方文档,对三者的含义说明如下:

一、accept-count:最大等待数

官方文档的说明为:当所有的请求处理线程都在使用时,所能接收的连接请求的队列的最大长度。当队列已满时,任何的连接请求都将被拒绝。accept-count的默认值为100。

详细的来说:当调用HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

二、maxThreads:最大线程数

每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务容器可以同时处理多少个请求。maxThreads默认200,肯定建议增加。但是,增加线程是有成本的,更多的线程,不仅仅会带来更多的线程上下文切换成本,而且意味着带来更多的内存消耗。JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以,更多的线程异味着需要更多的内存。线程数的经验值为:1核2g内存为200,线程数经验值200;4核8g内存,线程数经验值800。

优化Tomcat的maxConnections、maxThreads、acceptCount三大配置

三、maxConnections:最大连接数

服务器在任何给定时间将接受和处理的最大连接数。当达到此数量时,服务器将接受但不处理另一个连接。此附加连接将被阻止,直到正在处理的连接数低于maxConnections,此时服务器将再次开始接受和处理新连接。请注意,一旦达到限制,操作系统可能仍会根据acceptCount设置接受连接。默认值为8192。

maxConnections和accept-count的关系为:当连接数达到最大值maxConnections后,系统会继续接收连接,但不会超过acceptCount的值。

Tomcat

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Unity 之 Profiler的Android真机测试
下一篇:如何通过Restful API的方式读取SAP Commerce Cloud的Product Reference
相关文章