Tomcat性能优化根据不同的环境和条件,须分别对待,如服务器硬件环境,操作系统环境,网络环境,以及用户使用的情况等等,最好结合性能测试工具来做。以下列出几点常用的调优方法:
- 调 整Java参数,如果用的是Sun的Hotspot VM,可以Java命令加上参数"-server -Xms -Xmx",-server表示启用Java HotSpot Server VM,-Xms和-Xmx分别表示JVM初始内存大小和可以使用的最大内存,根据具体情况和需要调大这两个参数的值,默认值分别为2m和64m,显然太小 需要调大。在Tomcat/bin下的catalina.bat(for windows)和catalina.sh(for linux and unix)文件的最前面加上JAVA_OPTS=`-server -Xms256m -Xmx512m`。
- 禁用DNS查询,设置connector中的enableLookups="false",该参数的具体说明见Tomcat文档。设置如下:
- <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
- <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
- <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
- 调整Tomcat线程参数:
- maxThreads,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
- acceptCount,指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
- connnectionTimeout,网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。可设置为20000毫秒。
- minSpareThreads,Tomcat初始化时创建的线程数。
- maxSpareThreads,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
附:几篇Tomcat相关的性能测试报告
- Comparing The Performance of J2EE Servers
- Performance and Distinct Error Handling under Memory Load
- Performance and Distinct Error Handling under Computational Load
相关链接:
- Java HotSpot VM Options
- Java application launcher in linux
- Java application launcher inwindows
- 一篇较详细的中文文档