文档章节

tomcat的acceptCount、maxThreads、connectionTimeout参数调整

go4it
 go4it
发布于 2017/01/10 00:52
字数 785
阅读 36
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

###acceptCount值调整(默认100) acceptCount的经验值的范围为50-300,当tomcat的处理能力不够快的时候,可以调整该值,比较有用。

  • 当系统的并发量比较大的时候,关闭keep alive,然后适当调整该值
  • 当连接建立之后,经常得不到worker线程处理时,可以适当降低该值,开启keep alive

当该值设置为比较大的时候,请求的突增,会很快填满accept队列(完成三次握手建立连接,等待工作线程处理响应,如果一直没得到service,则client得不到响应,出现read timeout,最糟糕的情况是连接在accept队列等待了很久,等到能得到worker线程服务的时候,已经超时了,这样其实浪费了很多连接),让woker线程非常繁忙,当超过系统的承受能力的时候,请求不断堆积,然后导致工作线程cpu饿死(starvation)。因此需要系统进行自我保护,当超出负载能力的时候,迅速fail fast,返回503。

因此要合理评估系统高峰的时候,worker线程池的大小。假设server平均每个请求耗时5ms,那么1个线程每秒rps可以有200,假设有4核cpu,那么每秒最大可以有800rps。现在假如有4个请求同时进来,那么4个线程将繁忙起来,也就是接下来的5ms中,这些线程时繁忙的。那么对于这个4核cpu的系统来说,最大的rps就是800.

当acceptCount的值设置的太小的时候,当请求量大的时候,操作系统无法给tomcat建立更多的连接(无法完成三次握手),client端出现很多connect timeout,而这些被拒绝掉的请求可能是在worker线程的处理能力之内的。

当开启http keep alive的时候,client端可能没有那么及时地关闭连接,那么server端的worker线程会一直被这些实际上可能不活跃的连接给占用了,导致worker线程没能重复利用起来。但是关闭http keep alive的时候,频繁的地进行tcp连接和端口,这样会造成很多TIME_WAIT的socket,给服务端增加压力。

##maxThreads值调整(默认200)

  • 经验值范围为200-800,可以从400设置起再进行调优
  • 代表最大的并发请求数
  • 当cpu利用率高的时候,不宜增加线程的个数,可以调小该值
  • 当cpu利用率不高,大部分是io阻塞类的操作时,可以适当增加该值

##connectionTimeout(默认值为60000毫秒)

  • 经验值为2000-60000,默认的60秒对于一个web server可能太高了,可以设置为3000
  • 实际上指的是SO_TIMEOUT参数的值
  • 代表在阻塞读写时,两个tcp包到来的最大间隔时间
  • 当client比较慢的时候,可以增大该值
  • 当需要快速超时时,可以降低该值

##doc

© 著作权归作者所有

go4it
粉丝 89
博文 1178
码字总数 1102878
作品 0
深圳
私信 提问
设置 TOMCAT 请求超时时间 和 最大连接数

http://blog.csdn.net/liufuwu1/article/details/54890834 可以通过设置tomcat下conf文件夹的server.xml文件,对请求连接数和请求超时时间进行设置。 [html] view plain copy connectionTim...

勇贵
2017/02/14
3
0
Tomcat 7最大并发连接数的正确修改方法

这是个很简单的问题,但是搜了一圈,发现大家都写错了。所以这里总结一下: 几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的): ...

搬砖小哥
2017/11/01
161
0
tomcat高并发优化的参数优化

  Tomcat连接相关参数       在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxPro...

linux运维菜
2018/06/24
0
0
tomcat最大连接数修改

1 tomcat 的server.xml的路径vim /usr/local/tomcat/conf/server.xml 1.1 最大连接数相关 maxThreads:表示最多同时处理的连接(以上是50个)minSpareThreads:表示没有没有使用也开这么多空...

zjycff
2017/12/19
0
0
tomcat简单优化

我的优化配置: JAVAOPTS="-Xms16384m -Xmx16384m -Xloggc:/home/soft/8080gc.log -Xss256k -Xmn6144m -XX:PermSize=1024m -XX:MaxPermSize=1024m -XX:SurvivorRatio=6 -XX:MaxTenuringThres......

helloworldpy
2017/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

x005-构造程序逻辑

构造程序逻辑 结合生活例子运用程序语言 百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何...

伟大源于勇敢的开始
38分钟前
3
0
问题汇总

最近在补知识面的时候发现有几个问题, 第一个呢是 教程 没有提前准备好。(视频方面的吧 书上面的 都要有) 第二个呢是 ,开发工具太多了,搞不清楚到底用哪个了 和哪个教程相匹配。 第三个...

T型人才追梦者
今天
7
0
OSChina 周三乱弹 —— 我以前超喜欢晒太阳的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @watergood :分享海先生的单曲《东篱》: 《东篱》- 海先生 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :早.先喝几大碗鸡汤 @小小...

小小编辑
今天
19
1
法国电力项目二期正式验收

2019年12月10日, 法国电力项目二期正式验收. 二期实现了一个个人能源的自交易/自管理APP + 管理后台。 并就未来的合作技术方向进行了探讨: 去中心化数据存储/搜索引擎 可信计算/零知识证明...

怎当她临去时秋波那一转
今天
13
0
索引延迟关联

前言 今天在看代码的时候学习到了一种索引的优化,就先在此记录下来。 具体 举个例子,原sql如下: SELECT * FROM TABLE WHERE INDEX = '' LIMIT 10000, 10; 现象 就算INDEX用了查询索引,...

无敌小杰杰
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部