tomcat 参数调优--maxThreads、acceptCount(最大线程数、最大排队数)

版权声明:本文为博主原创文章,未经博主允许不得转载。安金龙 的博客。 https://blog.csdn.net/smile0198/article/details/23791203

一、不适用线程池

配置:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxThreads="800" acceptCount="1000"/>

1、最大连接数 maxThreads

tomcat同时处理的线程数。
配置依据:
(1)、部署的程序偏计算型,主要利用cpu资源,应该将该参数设置小一点,减小同一时间抢占cpu资源的线程个数。
(2)、部署的程序对io、数据库占用时间较长,线程处于等待的时间较长,应该将该参数调大一点,增加处理个数。

应该注意:如果线程数过大,那么cpu用在线程切换的时间占的比重会增大,系统性能会降低。

2、最大排队数 acceptCount

当tomcat的线程数达到maxThreads后,新的请求就会排队等待,超过排队数的请求会被拒绝。
我一般设置和maxThreads相同。


参数的设置需要进行测试,找到一个合理的点。

二、使用线程池
第一步,打开共享的线程池 

  <Service name="Catalina"> 
    <!--The connectors can use a shared executor, you can define one or more named thread pools--> 

      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  
      maxThreads="1000" minSpareThreads="50" maxIdleTime="600000"/> 
默认前后是注释<!-- -->掉的,去掉就可以了。
第二步 
在 Connector里指定使用共享线程池 

    <Connector 
      port="8009" 
      protocol="AJP/1.3" 
      maxThreads="5000" 
      executor="tomcatThreadPool" 
注意,一旦使用了线程池,则其它的线程属性,比如 maxThreads等将被忽略 

参考:
http://wallimn.iteye.com/blog/475511
展开阅读全文

没有更多推荐了,返回首页