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 相关文章推荐
Apache站点配置SSL强制跳转443
Mar 09 Servers
nginx如何将http访问的网站改成https访问
Mar 31 Servers
nginx配置proxy_pass中url末尾带/与不带/的区别详解
Mar 31 Servers
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
Apr 04 Servers
使用Nginx搭载rtmp直播服务器的方法
Oct 16 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
Linux中各个目录的作用与内容
Jun 28 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
服务器nginx权限被拒绝解决案例
Sep 23 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
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
php数组去除空值函数分享
2015/02/02 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
PHP pear安装配置教程
2016/05/14 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
js变换显示图片的实例
2013/04/16 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
让python在hadoop上跑起来
2016/01/27 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
解决python线程卡死的问题
2019/02/18 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
Python 读取位于包中的数据文件
2020/08/07 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
服务中心夜班服务员岗位职责
2013/11/27 职场文书
保密工作实施方案
2014/02/24 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server