Tomcat 7最大并发连接数的正确修改方法(转)

几乎所有的中文网页都介绍,要修改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代码
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"
minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000 " useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

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

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

首先,在这里:http://tomcat.apache.org/ 我们点击左侧导航栏中“Documentation”下的Tomcat 7.0,进入到这个链接中:http://tomcat.apache.org/tomcat-7.0-doc/index.html ,详细的信息我们不用都看,在左侧导航栏中有一个链接Configuration,我们点进去之后,再点击其左侧导航栏中connector一项的HTTP,就进入到HTTP连接数及其他相关属性的设置页面了。在这里(http://tomcat.apache.org/tomcat-7.0-doc/config/http.html)我们可以看到,在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:

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

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

相关阅读:

Linux下Apache与多个Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

实例详解Tomcat组件安装+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

Apache+Tomcat 环境搭建(JK部署过程) http://www.linuxidc.com/Linux/2012-11/74474.htm

http://www.linuxidc.com/Linux/2013-09/90332.htm

 

时间: 2024-08-03 17:28:42

Tomcat 7最大并发连接数的正确修改方法(转)的相关文章

不让tomcat显示目录文件列表的配置方法

 这篇文章主要介绍了不让tomcat显示目录文件列表的配置方法,这里需要修改conf/web.xml文件,需要的朋友可以参考下 修改conf/web.xml文件(把listings的参数改为false)    代码如下: <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-cl

让2个系统一起装进C盘最正确的方法

  Windows 7和XP有相同的文件夹Programe Files和Windows ,如果同时安装在C盘,会因为同名文件夹导致系统文件被另一个系统的文件被覆盖,从而导致其中一个系统不能正常运行.有什么解决方法可以令这两个系统共存呢?办法总比困难多,下面介绍其中一个方法. 注:网上有类似的方法介绍(基本上是相互抄袭的),并且很多人(包括本人)试了都不成功,其1:Program Files和Program Filescommon Files文件夹还是在C盘根目录,其2:安装Win7后,搞不出XP

tomcat-关于用WebService服务器端修改方法

问题描述 关于用WebService服务器端修改方法 用的是java 语言 使用WebService,现在用的是代理的那方式,但是如果服务器端的某 些方法发生改动,还要重新生成一下服务器端,而且同时客户端也要重新生成,这样太 麻烦了,如果方法一多,一直改不太现实,有没有大神知道别的方法,因为本人对WebService不太了解,只是知道最基本的发布到tomcat,以及在客户端调用,但是修改服务器端代码的话,就会比较麻烦,求助!! 解决方案 所以要定义好web service的API这样后台方法变化

WINDOWS SERVER 2008远程桌面端口修改方法_win服务器

微软默认的服务器远程端口是3389,这是被很多黑客利用的端口,如何修改掉了,下面我们来说方法 很多朋友在使用WINDOWS操作系统的时候,都喜欢修改远程连接的默认端口.但是很多朋友由于修改端口的方法错误,导致自己不能远程操作服务器,给自己带来了麻烦.在这里,我给大家简单谈谈正确修改远程端口的方法 在开始-----运行菜单里,输入regedit,进入注册表编辑,按先面的路径进入修改端口的地方 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\T

WINDOWS SERVER 2008远程桌面端口修改方法

微软默认的服务器远程端口是3389,这是被很多黑客利用的端口,如何修改掉了,下面我们来说方法很多朋友在使用WINDOWS操作系统的时候,都喜欢修改远程连接的默认端口.但是很多朋友由于修改端口的方法错误,导致自己不能远程操作服务器,给自己带来了麻烦.在这里,我给大家简单谈谈正确修改远程端口的方法 在开始-----运行菜单里,输入regedit,进入注册表编辑,按先面的路径进入修改端口的地方 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Te

修改方法签名的重构手法

今天看到同事写的一篇博客<依赖快捷键做重构是不行的>.里面讲了一个这样的案例:本来有一方法,假设叫methodA. 1 2 3 public void methodA(){ // blablabla... } 后来由于需求变动,需要增加一个参数,姑且看做这个样子. 1 2 3 public void methodA(String param){ // blablabla... } 他本来想直接修改方法签名(Intellij中快捷键是Ctrl+F6).但这样会导致所有调用此方法的地方由于缺乏对新

Oracle 11g RAC环境下Private IP修改方法及异常处理

Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 # olsnodes -s -n –i host1 1 host1-vip Active host2 2 host2-vip Active 2. 修改Private IP配置信息 如果之前只有一个私有网卡,则直接删除时会报错,如:PRIF-31: Failed to delete the speci

Android开发中Launcher3常见默认配置修改方法总结

本文实例讲述了Android开发中Launcher3常见默认配置修改方法.分享给大家供大家参考,具体如下: Launcher概述 Launcher是开机完成后第一个启动的应用,用来展示应用列表和快捷方式.小部件等.Launcher作为第一个(开机后第一个启动的应用)展示给用户的应用程序,其设计的好坏影响到用户的体验,甚至影响用户购机的判断.所以很多品牌厂商都会不遗余力的对Launcher进行深度定制,如小米的MIUI.华为的EMUI等.Android默认的Launcher没有过多的定制,更加简洁

TP-Link路由器登陆密码修改方法图文教程

  本文介绍了TP-Link路由器登陆密码的修改方法,TP-Link路由器一般使用admin作为默认的登陆密码,意味着局域网中的任何人都可以进入TP-Link路由器的设置界面,显然这是非常不安全的.因此,对默认的登陆密码进行修改是非常有必要的. 温馨提示: 目前TP-Link新推出的无线路由器,是没有默认登陆密码的,第一次设置路由器时,会要求用户设置一个管理员密码(也就是登陆密码),之后需要用设置的登陆密码才能进入设置界面.如果想要修改之前设置的登陆密码,也可以参考本文介绍的方法. 1.使用默认