如何增加tomcat线程池中的线程数?

时间:2011-06-19 13:42:03

标签: tomcat7 threadpool

我只是想知道如何增加tomcat线程池中的线程数? 什么数字设置最大值,我不知道什么是合适的?

3 个答案:

答案 0 :(得分:24)

您必须根据您的环境进行调整。

有时增加积压(acceptCount)的大小而不是最大线程数更有用。

说,而不是

<Connector ... maxThreads="500" acceptCount="50"

你使用

<Connector ... maxThreads="300" acceptCount="150"

在某些情况下,您可以获得更好的性能,因为会有更少的线程争用资源,并且积压队列将被更快地消耗。

无论如何,你必须做一些基准才能真正了解什么是最好的。

答案 1 :(得分:20)

听起来你应该保持默认值; - )

严重:您应该设置的最大并行连接数取决于您预期的tomcat使用情况以及服务器上的核心数。处理器上的核心数越多=&gt;更多可以执行的并行线程。

请参阅此处如何配置...

Tomcat 6:http://tomcat.apache.org/tomcat-6.0-doc/config/executor.html

Tomcat 7:http://tomcat.apache.org/tomcat-7.0-doc/config/executor.html

答案 2 :(得分:13)

来自Tomcat Documentation

<强> MAXCONNECTIONS 达到此数量后,服务器将接受但不处理另一个连接。 一旦达到限制,操作系统仍可以接受基于acceptCount设置的连接。 (当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。队列已满时收到的任何请求都将被拒绝。默认值为100.)对于BIO,默认值是maxThreads的值,除非执行者在这种情况下,默认值将是执行程序中maxThreads的值。对于NIO和NIO2,默认值为10000.对于APR / native,默认值为8192.请注意,对于Windows上的APR / native,配置的值将减小到1024的最大倍数,小于或等于maxConnections。这是出于性能原因而完成的。

<强> maxThreads
此Connector要创建的最大请求处理线程数,因此确定可以处理的最大并发请求数。如果未指定,则此属性设置为200.如果执行程序与此连接器关联,则忽略此属性,因为连接器将使用执行程序而不是内部线程池执行任务。