博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat 7最大并发连接数的正确修改方法
阅读量:6096 次
发布时间:2019-06-20

本文共 2905 字,大约阅读时间需要 9 分钟。

hot3.png

这是个很简单的问题,但是搜了一圈,发现大家都写错了。所以这里总结一下:

几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的):

--------------------------------------------

在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:

  
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令
具体的配置信息:
Java代码

 

  1. <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"
  2. minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"
  3. acceptCount="100" debug="0" connectionTimeout="20000 " useURIValidationHack="false"
  4. protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

 

--------------------------------------------

但是我仔细查了一圈,发现这个说法只是以讹传讹,并不适用于Tomcat 5.5以上的版本。这里先教大家怎么去查Tomcat的官网:

首先,在这里: 我们点击左侧导航栏中“Documentation”下的Tomcat 7.0,进入到这个链接中: ,详细的信息我们不用都看,在左侧导航栏中有一个链接,我们点进去之后,再点击其左侧导航栏中connector一项的,就进入到HTTP连接数及其他相关属性的设置页面了。在这里()我们可以看到,在Connector的属性配置中,压根就没有maxProcessors等的设置选项。其中这句话已经介绍得很清楚:

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). 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).

所以我们需要设置的是maxThreads和acceptCount这两个值:

其中,maxThreads的介绍如下:

The maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200. If an executor is associated with this connector, this attribute is ignored as the connector will execute tasks using the executor rather than an internal thread pool.

而acceptCount的介绍为:

The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 100.

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

 

 

  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.            connectionTimeout="20000"   
  3.            redirectPort="8443" acceptCount="500" maxThreads="400" />  

Html代码  

  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.            connectionTimeout="20000"   
  3.            redirectPort="8443" acceptCount="500" maxThreads="400" />  

今天就记录这么多,希望大家以后在转载别人的经验时更用心些,不要老出现上面那些以讹传讹的情况。也希望能对有些朋友起到帮助。

maxThreads 是处理请求的线程数,acceptCount 是等待队列,acceptCount并不是一定要大于等于maxThreads。

maxThreads 满了,进入acceptCount ,acceptCount 也满了,则 拒绝请求

转载于:https://my.oschina.net/u/3572879/blog/1559392

你可能感兴趣的文章
execl打开linux下cvs文件乱码问题解决办法
查看>>
android当前正在运行的应用包名
查看>>
转:电源滤波电路、整流电源滤波电路分析
查看>>
我的友情链接
查看>>
Hadoop集群搭建的无密登录配置
查看>>
angular使directive让div contenteditable & ng-model生效
查看>>
制作CentOS 6.4 U盘启动安装盘
查看>>
Java try、catch、finally及finally执行顺序详解
查看>>
children childNodes nodeType
查看>>
如何在Ubuntu 16.04上将Redis服务器设置为PHP的会话处理程序
查看>>
固态硬盘价格大跳水,再不入手又要涨了!
查看>>
css隐形的空隙(inline的坑)
查看>>
深圳美景品牌策划机构:美景“快传播”赢得法国最大乳业合作社赞誉
查看>>
nginx服务
查看>>
Android中使用自定义的字体
查看>>
linux 中文件类型和颜色的区分
查看>>
cocosPods 常见使用步骤
查看>>
对你同样重要的非技术贴,8个方法让你的老板认可你
查看>>
MLP、RBF、SVM神经网络比较
查看>>
最常用的命令
查看>>