Tomcat 最新的版本 6.0.18 修改了一些 bug 。这次升级 配置上也采用了 Executor 和 NIO 方式。
Tomcat6 maxSpareThreads参数不再被支持
minSpareThreads需要在 Executor 中配置
Standard 的配置和 NIO 的配置都可使用: acceptCount
使用 Executor 可能会有一点性能损失,但是高负载的环境下,会通过一个 FIFO 的队列公平得处理请求
升级到 tomcat6.0.18 ,修改 conf/ server.xml 调整为:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="200" minSpareThreads="50"/>
采用 NIO 的配置:
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" enableLookups="false"
maxThreads="200" acceptCount="500" acceptorThreadCount="1" connectionTimeout="5000"
redirectPort="8443" />
升级后,通过观察系统的监控图表发现,确实稳定了很多。