`

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

 
阅读更多

转载:http://blog.csdn.net/qysh123/article/details/11678903

 

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

几乎所有的中文网页都介绍,要修改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的官网:

首先,在这里: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:

 

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


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

分享到:
评论
6 楼 kealuya 2017-09-11  
留言止于智者
5 楼 leoge0113 2017-04-05  
4 楼 angelshelter 2017-03-11  
2楼理解很透呀,我用程序测了,是正确的。
3 楼 独孤日日也 2017-01-10  
2楼正解 
2 楼 guodefu909 2016-08-04  
maxThreads 是处理请求的线程数,acceptCount 是等待队列,acceptCount并不是一定要大于等于maxThreads。
maxThreads 满了,进入acceptCount ,acceptCount 也满了,则 拒绝请求
1 楼 wei. 2016-01-04  

相关推荐

    tomcat 最大并发连接数 acceptCount

    tomcat 最大并发数 并发量 tomcat 最大并发连接数 acceptCount不能说只要大于acceptCount的连接就一定被拒绝!

    linux下tomcat优化设置最大连接数内存jconsole监控.docx

    ### Linux 下 Tomcat 优化设置最大连接数及内存 JConsole 监控 #### 一、Tomcat 内存优化 ##### 1.1 基本原理 在启动 Java 应用程序时,JVM(Java 虚拟机)会为应用程序分配一定的初始内存和最大内存。这些设置对...

    tomcat并发量详解

    tomcat并发量详解 tomcat并发连接数详解

    tomcat配置 连接数(优化)

    其中,`maxConnections`表示最大的并发连接数。 2. **调整线程池**:通过设置`Executor`来创建一个自定义线程池,允许你更精细地控制线程的数量和行为。例如: ```xml maxThreads="300" minSpareThreads="100...

    JBOSS\Tomcat最大连接数配置和jvm内存配置.docx

    在JBOSSTomcat服务器的性能优化中,最大连接数配置和JVM内存配置是两个至关重要的环节,它们直接影响到服务器的响应速度和稳定性,尤其对于处理大量并发请求的场景。 首先,我们来看JBOSS最大连接数的配置。在`...

    tomcat 1000/s 并发配置

    对于高并发,可以增加`maxThreads`属性,这是Tomcat可以同时处理的最大线程数。例如,可以设置为`maxThreads="2000"`以应对1000 QPS的需求,但也要考虑到服务器的资源限制,避免过度消耗内存。 2. **配置...

    tomcat并发资料

    7. **连接超时与最大连接数**:设置合理的超时和最大连接数限制可以防止资源耗尽,同时确保服务器响应速度。 8. **Keep-Alive与HTTP连接复用**:启用HTTP Keep-Alive可以减少TCP连接的创建和销毁开销,提高并发性能...

    基于tomcat的连接数与线程池详解

    连接数决定了Tomcat可以接受多少并发连接,而线程池中的线程数则影响到Tomcat处理请求的吞吐量。线程池由Acceptor和Worker两部分组成,Acceptor负责接收连接,而Worker负责处理这些连接上的请求。在BIO模式下,如果...

    关于tomcat5.0配置及连接池配置详细

    同时,通过合理设置连接池的参数,可以进一步优化性能,如调整最大和最小连接数、连接超时、空闲检测频率等。 总结来说,连接池是提高Web应用性能的关键技术之一,尤其是在处理大量并发请求时。在Tomcat 5.0中正确...

    数据库连接数查看工具

    查看数据库连接数,直接放到tomcat服务器下用浏览器访问即可

    Tomcat7性能优化

    从Tomcat 7开始,可以通过修改`server.xml`中的`Connector`配置来启用NIO模式: ```xml connectionTimeout="20000" redirectPort="8443"/&gt; ``` - **APR (Apache Portable Runtime)**:通过C语言编写的高性能...

    tomcat中配置数据库连接池

    * maxActive="100":表示并发情况下最大可从连接池中获取的连接数。如果数据库不是单独供一个应用使用通过设置 maxActive 参数可以避免某个应用无限制的获取连接对其他应用造成影响。 * maxIdle="30":如果在并发时...

    tomcat 6.X 连接池的配置

    `maxActive`、`maxIdle`和`maxWait`分别代表最大活动连接数、最大空闲连接数和最大等待时间。 - `maxActive`:设置最大活动连接数,超过这个数的请求会被放入等待队列,设为0表示无限制。 - `maxIdle`:最大空闲...

    Tomcat中数据库连接池的配置和使用

    - **maxActive**: 最大活动连接数。 - **maxIdle**: 最大空闲连接数。 - **maxWait**: 获取连接时的最大等待时间(毫秒),如果设置为负数,则无限期等待。 #### 四、使用数据库连接池 配置完成后,应用程序可以...

    调整Tomcat的并发线程

    在实际调整Tomcat并发线程数时,需要特别注意的是,增加线程数会增加服务器的资源消耗,如果服务器的CPU、内存等资源不足以支撑如此高并发的需求,反而可能造成系统不稳定。因此,仅仅简单地增加maxThreads并不能...

    tomcat7最新版本

    3. **连接器优化**:根据场景选择合适的连接器类型(BIO, NIO, APR)和配置连接超时、最大连接数等参数。 4. **定期更新**:保持Tomcat版本的更新,以获得最新的安全修复和性能改进。 总结,"Tomcat7最新版本"在64...

    tomcat7性能调优

    7. **maxKeepAliveRequests**:定义一个连接可以处理的最大请求数,如设置为1000,防止过多的连接占用资源。 8. **useURIValidationHack**:设为`false`,禁用URI验证,可能提高性能。 9. **compression**:开启...

    Tomcat连接池配置详解

    同时,根据实际的系统负载和性能需求,适当调整连接池的参数,如最大连接数和等待时间,可以优化系统的响应速度和资源利用效率。 总结来说,配置Tomcat连接池是提升Web应用性能的关键步骤,它涉及到管理界面的操作...

Global site tag (gtag.js) - Google Analytics