maxThreads:

Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

acceptCount:

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

connnectionTimeout:

网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

minSpareThreads:

Tomcat初始化时创建的线程数。

maxSpareThreads:

一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 

enableLookups:

是否反查域名,默认值为true。为了提高处理能力,应设置为false 

maxKeepAliveRequests:

保持请求数量,默认值100。

bufferSize:

输入流缓冲大小,默认值2048 bytes

compression:

压缩传输,取值on/off/force,默认值off

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

例子: <Connector port="8080" protocol="HTTP/1.1"

                socketBuffer="9000"

                enableLookups="false"

                tcpNoDelay="true"

                minSpareThreads="20"

                maxThreads="1024"

                connectionTimeout="5000"

                maxHttpHeaderSize="32768"

                acceptCount="150"

                redirectPort="8443" />

最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。

<Connector port="8080" maxHttpHeaderSize="8192"
       maxThreads="1900" minSpareThreads="250" maxSpareThreads="750"
       enableLookups="false" redirectPort="8443" acceptCount="100"
       connectionTimeout="20000" disableUploadTimeout="true" 
       URIEncoding="GBK" useBodyEncodingForURI="true"
        compression="off"
      compressionMinSize="2048"
 noCompressionUserAgents="gozilla, traviata" 
 compressableMimeType="text/html,text/xml,text/JavaScript,text/css,text/plain,application/json"/>