tomcat默认最大连接数及相关调整方法


Posted in Servers onMay 06, 2022

一般来说我们都是用tomcat默认的配置做基础的本地开发,测试及生产肯定不用tomcat啦,正式一点的企业肯定换大型容器了,当然不排除还是用tomcat或者它的集群的,言归正传,tomcat的连接数相关配置及修改干货如下:

在tomcat配置文件server.xml中的<Connector  />标签配置中,和连接数相关的参数有下面几个(如果你现在看肯定都没有的):

  • minProcessors------------------最小空闲连接线程数,用于提高系统处理性能,默认值为10
  • maxProcessors-----------------最大连接线程数,即:并发处理的最大请求数,默认值为75
  • acceptCount---------------------允许的最大连接数,应大于等于maxProcessors,默认值为100
  • enableLookups-----------------是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
  • connectionTimeout------------网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

P.S.如果你要手动增加这些链接相关参数,那么根据以上参数肯定是找不到的,官方文档提示需要搞另外两个参数才能加大并发连接数,那就是maxProcessors和acceptCount。

官方原话及翻译:

If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the configured maximum (the value of the maxThreads attribute).

如果接收到的并发请求比当前可用的请求处理线程所能处理的更多,则将创建额外的线程到配置的最大值(maxThreads 属性)。

If still more simultaneous requests are received, they are stacked up inside the server socket created by the Connector, up to the configured maximum (the value of the acceptCount attribute).

如果接收到更多的并发请求,则它们被堆叠在由连接器创建的服务器套接字内,直到配置的最大值(acceptCount 属性)。

所以需要设置的是maxThreads和acceptCount这两个值,两者的默认值分别是200和100,要调整Tomcat的默认最大连接数,可以增加这两个属性的值,并且使acceptCount大于等于maxThreads:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" acceptCount="300" maxThreads="200" />

并发请求数 <= tomcat最大线程数200,可以看到200个请求,响应结果正常
并发数(201) >tomcat最大线程数200.可以看到,因为tomcat最大的线程数为200,201的并发请求量,超出了并发处理的数量200,多出来的1个请求,需要等待某个处理中的请求处理完成
请求数超过最大连接数300,可以看到有大量的没有正常响应的http请求,原因很简单,因为超过了tomcat设置的最大连接数,服务器拒绝了该次请求的连接

增加线程是有成本的,JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以更多的线程异味着更多的内存;
更多的线程会带来更多的线程上下文切换成本。

springboot中Tomcat配置建议:
最大工作线程数 ,默认200(4核8G内存,线程数经验值为800,操作系统之间做线程之间切换调度是有开销的,不是越多越好),最大连接数默认是10000,等待长度默认为100,最小工作空闲线程默认10

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

到此这篇关于tomcat默认最大连接数及相关调整方法的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
nginx结合openssl实现https的方法
Jul 25 Servers
Nginx部署vue项目和配置代理的问题解析
Aug 04 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
Nginx虚拟主机的配置步骤过程全解
Mar 31 Servers
Dashboard管理Kubernetes集群与API访问配置
Apr 01 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
详解如何使用Nginx解决跨域问题
May 06 Servers
Linux中文件的基本属性介绍
Jun 01 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
如何Tomcat中使用ipv6地址
May 06 #Servers
Tomcat弱口令复现及利用
Vscode中SSH插件如何远程连接Linux
nginx配置限速限流基于内置模块
May 02 #Servers
Nginx配置之禁止指定IP访问
centos7安装mysql5.7经验记录
May 02 #Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 #Servers
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
印度在线购物网站:Paytmmall
2019/07/24 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
可贵的沉默教学反思
2014/02/06 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
2014年高考决心书
2014/03/11 职场文书
学生请假条格式
2014/04/11 职场文书
工作散漫检讨书
2014/09/16 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
党员作风建设整改方案
2014/10/27 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
react中的DOM操作实现
2021/06/30 Javascript