文章摘自http://blog.csdn.net/wyingquan
Tomcat性能自身调整的最佳方式:
1. 禁用DNS 查询:
当web 应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器
查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起
作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。
方法是修改server.xml文件中的enableLookups 参数值:
Tomcat4
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80"
minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false"
disableUploadTimeout="true" />
Tomcat5
<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug
2. 调整线程数
web server 允许的最大连接数还受制于
操作系统的内核参数设置,通常Windows是2000个左右,Linux 是1000个左右。
在Tomcat5对这些参数进行了调整,请看下表:
属性名 描述
maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads Tomcat初始化时创建的线程数。
maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
3. 加速JSP 编译速度
4. 其它
Tomcat也提供了防止恶意攻击或禁止某些机器访问的设置。
Tomcat 提供了两个参数供你配置:RemoteHostValve 和RemoteAddrValve。
通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/IP。
与之类似的,在Apache的httpd文件里有对每个目录的允许/拒绝指定。
例如你可以把Admin Web application设置成只允许本地访问,设置如下:
<Context path="/path/to/secret_files" ...>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1" deny=""/>
</Context>