A-A+

Tomcat 6.0共享线程池的配置

2009年12月29日 Tomcat 暂无评论 阅读 271 次浏览 次

配置很简单 

第一步,打开共享的线程池

  <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"/>

默认前后是注释<!-- -->掉的,去掉就可以了。其中 



name 

The name used to reference this pool in other places in server.xml. The name is required and must be unique. 

这个是线程池的名字,必须唯一,我们在后面的配置里要用到这个东西 



namePrefix 

(String) The name prefix for each thread created by the executor. The thread name for an individual thread will be namePrefix+threadNumber 

线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如 

catalina-exec-1 

catalina-exec-2 



maxThreads 

(int) The max number of active threads in this pool, default is 200 

允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源 



minSpareThreads

(int) The minimum number of threads always kept alive, default is 25 

最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源。 



maxIdleTime 

(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads. Default value is 60000(1 minute) 

超过最小活跃线程数量的线程,如果空闲时间超过这个设置后,会被关别。默认是1分钟。 



threadPriority 

(int) The thread priority for threads in the executor, the default is Thread.NORM_PRIORITY 

线程的等级。默认是Thread.NORM_PRIORITY 



第二步 

在 Connector里指定使用共享线程池

    <Connector
      port="8009"
      protocol="AJP/1.3"
      maxThreads="5000"
      executor="tomcatThreadPool"

注意,一旦使用了线程池,则其它的线程属性,比如 maxThreads等将被忽略 



我测试了一下,由于每次请求不再需要重新分配线程,系统响应速度还是有很明显的改善的。

标签:

评论已关闭!

Copyright © 香港虚拟主机_美国虚拟主机_香港服务器_美国服务器租用托管 保留所有权利.   Theme  Ality 蜀ICP备14006632号-1

用户登录