Tomcat6.x性能参数调整

12年前
1.软硬件环境:
应用服务器:64位Windows2003 Server 2cpu 4GB RAM
JDK版本:64位1.5.22
Tomcat版本:6.0.16

2.startup.bat文件中加入设置内存参数:
Java代码
  1. SET CATALINA_OPTS=-Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m
  1. SET CATALINA_OPTS=-Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m


3.设置线程池及网络连接
Java代码
  1. <!--线程池-->
  2. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
  3. maxThreads="300" minSpareThreads="100"/>
  4. <!--网络连接-->
  5. <Connector port="8080" protocol="HTTP/1.1"
  6. connectionTimeout="20000"
  7. redirectPort="9443"
  8. executor="tomcatThreadPool"
  9. compression="on"
  10. noCompressionUserAgents="gozilla, traviata"
  11. compressableMimeType="text/html,text/xml,text/javascript,text/css" />
  1. <!--线程池-->
  2. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
  3. maxThreads="300" minSpareThreads="100"/>
  4. <!--网络连接-->
  5. <Connector port="8080" protocol="HTTP/1.1"
  6. connectionTimeout="20000"
  7. redirectPort="9443"
  8. executor="tomcatThreadPool"
  9. compression="on"
  10. noCompressionUserAgents="gozilla, traviata"
  11. compressableMimeType="text/html,text/xml,text/javascript,text/css" />


4.参数详细解释:
-Xms[初始化堆内存大小]
-Xmx[可以使用的最大堆内存]
PermSize[永久生成对象如:class对象、方法对象这些可反射(reflective)对象所分配的初始内存,这些内存不包括在Heap(堆内存)区之中]
MaxPermSize[永久生成对象所使用的最大内存]
maxThreads[最大线程数,受限于操作系统支持的网络连接数,一般windows为2000左右,linux为1000左右]
minSpareThreads[最小空闲线程,线程池初始线程数]
maxSpareThreads[最大空闲线程,一旦空闲线程数超出该数字,tomcat会自动关闭不再需要的线程]
connectionTimeout[网络连接超时时间(毫秒),0为永不超时]
compression[压缩传输,能够些许提高服务器与客户端的网络传输效率]

5.以上参数调整信息仅供参考,实际项目中应根据系统的实际运行情况做调整
可以使用tomcat自带的监控工具进行服务器性能监控,但是首先需要在conf/tomcat-users.xml 文件中做如下配置:
Java代码
  1. <role rolename="manager"/>
  2. <user username="admin" password="admin" roles="manager"/>
  1. <role rolename="manager"/>
  2. <user username="admin" password="admin" roles="manager"/>