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/,text/css,text/plain,application/json"/>