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的默认端口
Mar 31 Servers
nginx如何将http访问的网站改成https访问
Mar 31 Servers
nginx优化的六点方法
Mar 31 Servers
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
Apr 04 Servers
详解nginx location指令
Jan 18 Servers
Consul在linux环境的集群部署
Apr 08 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
Nginx 常用配置
May 15 Servers
Nginx静态压缩和代码压缩提高访问速度详解
May 30 Servers
Nginx本地配置SSL访问的实例教程
May 30 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
nginx访问报403错误的几种情况详解
Jul 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
PHP实现MySQL更新记录的代码
2008/06/07 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python操作CouchDB数据库简单示例
2015/03/10 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
numpy自动生成数组详解
2017/12/15 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
销售自荐信
2013/10/22 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python