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

本文探讨了Tomcat服务器在不使用线程池情况下的参数调优,重点关注了`maxThreads`(最大连接数)和`acceptCount`(最大排队数)两个关键设置,详细解释了它们的作用和如何调整以优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、不适用线程池

配置:
<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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值