关于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" <!-- 压缩类型 -->
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com