solr的配置:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="200" minSpareThreads="20"/>
<Connector
port="7100"
protocol="HTTP/1.1"
connectionTimeout="10000"
redirectPort="8443"
URIEncoding="UTF-8"
compression="on"
compressableMimeType="text/html,text/xml,text/plain"
executor="tomcatThreadPool"
compressionMinSize="2048"/>
cat jstack1 | grep "catalina-exec" | wc -l
200
cat jstack1 | grep "pool-" | wc -l
10
<Connector port="8282"
protocol="HTTP/1.1"
connectionTimeout="5000"
redirectPort="8443"
URIEncoding="UTF-8"
compression="on"
compressableMimeType="text/html,text/xml,text/plain,application/xml"
executor="tomcatThreadPool"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="20"
maxKeepAliveRequests="1"
maxSpareThreads="75"
disableUploadTimeout="true"/>
在server.xml里面的connector里面加上一个maxKeepAliveRequests="1"就可以避免tomcat产生大量的TIME_WAIT连接,从而从一定程度上避免tomcat假死。
port:Tomcat服务器监听的端口号
maxHttpHeaderSize:Http的Header的最大限制
maxThreads:Tomcat可创建的最大的线程数
minSpareThreads:初始化创建的线程数
maxSpareThreads:一旦创建的线程超过这个数,Tomcat就将关闭不再需要的Socket线程
enableLookups:使用允许DNS查询,通常情况下设置为false
acceptCount:当所有可以使用的处理请求的线程树都被使用时,可以放到请求队列中的请求数,超过这个数的请求将不予处理。其实,该属性与ServerSocket(int port,int backlog)中的backlog参数意义相同,具体可参考ServerSocket的JDK API
connectionTimeout:网络连接超时,单位毫秒。设置为0表示永不超时
除此之外,还有很多有用的属性,例如:maxPostSize,maxSavePostSize,maxKeepAliveRequests等,具体用法可以参考Tomcat的Doc
3、Access Log Valve设置
该Valve用于记录每次Tomcat服务器的连接,默认情况下该选项是关闭的。同时,该日志可用于其它分析工具进行日志分析和统计。配置如下:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
directory:该日志存放的目录
prefix:该日志文件的名称
suffix:该日志文件的后缀名
pattern:日志显示的格式,通常情况下用common或combined。具体格式相关字段的意义可以参考Tomcat Doc
4、Remote Address Filter
IP过滤功能,对于服务器的安全配置非常有用。可以用于过滤来自请求的主机或IP,并允许拒绝那些主机或IP。
配置如下:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=" 127.0.0.1" deny=""/>
参考:http://blog.csdn.net/fenglibing/article/details/4528512