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压力测试工具的安装使用
Mar 31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
Nginx URL重写rewrite机制原理及使用实例
Apr 01 Servers
使用Nginx搭载rtmp直播服务器的方法
Oct 16 Servers
配置Kubernetes外网访问集群
Mar 31 Servers
Nginx速查手册及常见问题
Apr 07 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
tomcat下部署jenkins的方法
May 06 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
Nginx跨域问题解析与解决
Aug 05 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 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网站地图生成类示例
2014/01/13 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP crc32()函数讲解
2019/02/14 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
深入讲解Python中的迭代器和生成器
2015/10/26 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python正则表达式指南 推荐
2018/10/09 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python版名片管理系统
2018/11/30 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
一行python实现树形结构的方法
2019/08/09 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python数据抓取3种方法总结
2021/02/07 Python
微信营销策划方案
2014/02/24 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
公司车队管理制度
2015/08/04 职场文书
在Python 中将类对象序列化为JSON
2022/04/06 Python