Springboot内置Tomcat配置调优实战

 我来答
世纪网络17
2022-06-14 · TA获得超过5950个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部

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

# tomcat 8

# tomcat 9

1、accept-count:最大等待数

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

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

2、maxThreads:最大线程数

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

线程数的经验值为 :1核2g内存为200,线程数经验值200;4核8g内存,线程数经验值800。

3、maxConnections:最大连接数

官方文档:

这个参数是指在同一时间, tomcat能够接受的最大连接数 。对于Java的阻塞式BIO,默认值是maxthreads的值;如果在BIO模式使用定制的Executor执行器,默认值将是执行器中maxthreads的值。对于Java 新的NIO模式,maxConnections 默认值是10000。

对于windows上APR/native IO模式,maxConnections默认值为8192,这是出于性能原因,如果配置的值不是1024的倍数,maxConnections 的实际值将减少到1024的最大倍数。

如果设置为-1,则禁用maxconnections功能,表示不限制tomcat容器的连接数。

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式