设置tomcat的java虚拟机参数catalina.sh/bat
JAVA_OPTS="$JAVA_OPTS -server -Xms512m -XX:NewSize=256M -XX:MaxNewSize=512M -XX:MaxPermSize=128m -Xrs -Xss128k -Xloggc:gc.txt -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-HeapDumpOnOutOfMemoryError"
设置tomcat服务器参数server.xml设置socket、线程、压缩传输参数
<Connector port="8080" protocol="HTTP/1.1" acceptCount="100" maxThreads="500" minSpareThreads="25" maxSpareThreads="75" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" redirectPort="8443" />
建议配置:
<Connector port="8080" protocol="HTTP/1.1" acceptCount="700" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" redirectPort="8443" />
在Tomcat6对这些参数进行了调整,请看下面属性:
maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads Tomcat初始化时创建的线程数。
maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。
压缩参数:
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"