一.线程池(ThreadPool)优化
编辑“Tomcat安装目录/conf/server.xml”文件,找到如下内容
!--
Executorname="tomcatThreadPool"namePrefix="catalina-exec-"
maxThreads=""minSpareThreads="4"/
--
取消注释,参数做如下调整
Executorname="tomcatThreadPool"namePrefix="catalina-exec-"
maxThreads=""minSpareThreads="25"
maxIdleTime=""acceptCount=""/
参数说明:
name这个是线程池的名字,必须唯一,默认即可,我们在后面的配置里要用到这个东西namePrefix线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如catalina-exec-1catalina-exec-2maxThreads线程池可以容纳的最大线程数,tomcat使用线程来处理接收的请求每一个线程处理一个请求,这个值决定了同时能够处理的最大请求数,缺省值为minSpareThreads最小的保持活跃的线程数量,缺省值为4(tomcat5有此参数,而tomcat6无此参数,到了tomcat7又重新使用此参数,顺便提下5和7中这两个参数含义并不相同有兴趣可以查看官方文档)maxIdleTime 关闭一个空闲线程之前允许空闲线程持续的时间,只有当前空闲线程数大于minSpareThread的值,才会关闭空闲线程acceptCount当所有可用的请求处理线程都被使用的时候,连接请求队列的最大长度。当该队列满了以后的所有请求都被拒绝,缺省值为10
顺便提下如下3个参数maxSpareThreads、maxProcessors和minProcessors
maxSpareThreads:允许存在的空闲线程的最大数量,tomcat5及以前版本才有的参数,tomcat6和tomcat7均无此参数minProcessors:最小空闲连接线程数,用于提高系统处理性能maxProcessors:最大连接线程数,即并发处理的最大请求数maxProcessors和minProcessors是tomcat4才有的,tomcat5之后的版本均取消了这2个参数,tomcat4基本无人在用了吧,所以优化的时候别再把这2个参数加上了
二.连接器(Connector)优化
编辑“Tomcat安装目录/conf/server.xml”文件,找到如下内容将其注释掉
Connectorport="80"protocol="HTTP/1.1"
connectionTimeout="00"
redirectPort=""/
再找到如下内容,取消注释
!--
Connectorexecutor="tomcatThreadPool"
port=""protocol="HTTP/1.1"
connectionTimeout="00"
redirectPort=""/
--
参数做如下调整
Connectorexecutor="tomcatThreadPool"
port=""protocol="HTTP/1.1"
URIEncoding="UTF-8"enableLookups="false"disableUploadTimeout="true"
connectionTimeout="00"keepAliveTimeout="00"maxKeepAliveRequests=""
useURIValidationHack="false"