Tomcat调优相关总结

关于Tomcat调优的一些总结,欢迎拍砖。

1、线上环境Java版本:

java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)

2、修改$CATALINA_HOME/bin/catalina.sh:

其中有一个CATALINA_OPTS参数,可以配置Tomcat启动时的JVM参数。

CATALINA_OPTS="-Xms4g -Xmx4g -Xmn3g -Xss256k \
    -server \
    -XX:PermSize=128M \
    -XX:MaxPermSize=128M \
    -XX:+UseConcMarkSweepGC \
    -XX:+UseAdaptiveSizePolicy \
    -XX:+CMSClassUnloadingEnabled \
    -XX:+CMSPermGenSweepingEnabled \
    -XX:+UseCMSCompactAtFullCollection \
    -XX:+DisableExplicitGC \
    -XX:CMSFullGCsBeforeCompaction=10 \
    -XX:CMSMaxAbortablePrecleanTime=5"

基本就是重置各代大小、Perm区大小、启用CMS等...此处不再做详细解释,具体调优参数见我的另外一篇blog:《某高并发应用JVM启动参数配置》

3、修改$CATALINA_HOME/conf/server.xml:

<Connector port="8101" protocol="HTTP/1.1" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="30000" disableUploadTimeout="true" URIEncoding="UTF-8" />

这里主要是对Tomcat Connector进行配置,上面是一个样例。

配置项如下:

maxThreads

Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。 

可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。

acceptCount

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。 

要加大并发连接数,应同时加大以上两个参数。最大连接数也受制于操作系统内核参数设置,通常Linux是1000个左右。

minSpareThreads

Tomcat初始化时创建的线程数。默认值4。 

maxSpareThreads

一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。 

enableLookups 

是否反查域名,默认值为true。为了提高处理能力,应设置为false 

connnectionTimeout

网络连接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

maxKeepAliveRequests 

保持请求数量,默认值100。 

bufferSize

输入流缓冲大小,默认值2048 bytes。 

compression

压缩传输,取值on/off/force,默认值off。

注,压缩相关参数:

compression="on" <!-- 打开压缩功能 -->
compressionMinSize="2048" <!-- 启用压缩的输出内容大小,这里面默认为2KB --> 
noCompressionUserAgents="IE, FireFox, Opera"  <!-- 对于以下的浏览器,不启用压缩 --> 
compressableMimeType="text/html,text/xml" <!-- 压缩类型 -->

猜你喜欢

转载自shensy.iteye.com/blog/1922334