Tomcat>service.xml配置

web容器Tomcat>service.xml配置

Executor
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"
        
/>
```xml
port
socket端口号
protocol
使用的网络协议,表示tomcat使用何种方式来接受和处理client端请求,"HTTP/1.1"是默认值,等效于"org.apache.coyote.http11.Http11Protocol";还有熟悉的"AJP/1.3";关于HTTP和AJP两种方式的区别和性能优劣可以参见其他文档。
maxThreads
用于接收和处理client端请求的最大线程数,tomcat底层将采取线程池的方式来处理客户端请求,此参数标识这线程池的尺寸.maxThreads意味着tomcat能够并发执行request的个数.此值默认为200.一般情况下,在production环境中(根据物理机器配置,或者虚拟机的限制来做参考值),通常会有微调.较大的值并不能提升tomcat的负载能力,事实上"200"个线程数,已经足够大了.本人的线上环境为maxThreads=120.
对于NIO模式下,maxThreads参数应该由CPU核心数决定,乐观起见,此值为:cpu核数*2。
太大的值,并不能提升NIO性能,反而会使性能下降,因为线程切换(CS)将会占据CPU的大量时间。
acceptCount
当tomcat请求处理线程池中的所有线程都处于忙碌状态时,此时新建的链接将会被放入到pending队列,acceptCount即是此队列的容量,如果队列已满,此后所有的建立链接的请求(accept),都将被拒绝。默认为100。在高并发/短链接较多的环境中,可以适当增大此值;当长链接较多的场景中,可以将此值设置为0.
maxConnections
tomcat允许接收和处理的最大链接数,对于BIO而言此值默认与maxThreads参数一样,对于NIO而言此值默认为10000。对于tomcat已经接受和正在处理的线程数达到此值,server将允许继续accept新链接但是不会处理它们,这些链接将会被阻塞直到连接数降低到此值(server将不会从这些socket中读取数据,而是将它们的句柄buffer起来)。最终server是否可以继续accept新的链接,取决于acceptCount值,因为此值是在创建ServerSocket时传递的参数,超过此值后,链接请求将会被拒绝。

minSpareThreads
线程池中,保持活跃的线程的最小数量,默认为10。
connectionTimeout
当client与tomcat建立连接之后,在"connectionTimeout"时间之内,仍然没有得到client的请求数据,此时连接将会被断开.此值的设定需要考虑到网络稳定型,同时也有性能的考虑.它和tcp的配置选项中的"socket_timeout"仍有区别,connectionTimeout只会在链接建立之后,得到client发送http-request信息前有效.默认值为60000,即60秒;对于互联网应用,此值我们应该设置合理,比如20000
maxHttpHeaderSize
http头的最大尺寸,默认为8192,单位为“字节”。
tcpNoDelay
如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。
compression
是否对http相应数据启用Gzip压缩,可选值为"off"或者"on";这是一个值得商榷的参数;如果开启压缩,意味着较少的网络传输量,但是将消耗一定的CPU.如果你的应用有较高的CPU性能结余,且响应数据均是一些文本字符串,那么开启压缩,会有较大的收益.(并不是所有的浏览器都能够合理的支持gzip压缩,特别是低版本)
disableUploadTimeout
这个标志允许servletContainer在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上传的时候更长的超时时间。如果没有指定,设为false。
redirectPort
在如上配置中,会导致,转到https后,session丢失。 如果想http与https用同一个session则需要将这个配置删除。( redirectPort="443" )
enableLookups
关闭DNS反向查询。
URIEncoding
http-get请求中,使用何种字符集对查询字符串进行编码,默认为"iso-8859-1".
executor
要的线程池

上一篇:tomcat优化


下一篇:不同版本 两个 tomcat 在同一 服务器 上运行 需要更改的信息