你的位置:首页 > Java教程

[Java教程]tomcat调优问题


 

Tomcat从5.5版本开始,支持以下四种Connector的配置分别为:
 
1、<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"                   connectionTimeout="20000" redirectPort="8443"/>2、<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"        redirectPort="8443"/>3、<Connector executor="tomcatThreadPool"        port="8081" protocol="HTTP/1.1"        connectionTimeout="20000"        redirectPort="8443" />4、<Connector executor="tomcatThreadPool"        port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"        connectionTimeout="20000"        redirectPort="8443" />

 

1方式波动较大,但处理的请求数相对会高,
2方式性能是很稳定,但是处理的请求数也是最差的,这种方式就是Tomcat的默认配置。
3方式则波动很大,处理的请求与2方式差不多,不时有停滞。
4方式是在1方式的基础上加入线程池,
 
但是使用2方式时,出现一个问题,频繁的请求一个页面,jvm堆中老年代内存持续上升,最终导致OOM,服务器挂掉,以下是我的配置:
 
server.
  <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"            connectionTimeout="20000"             executor="tomcatThreadPool"               maxThreads="2000"             minSpareThreads="200"             maxSpareThreads="1000"             acceptCount="200"             disableUploadTimeout="true"            compression="on"             compressionMinSize="2048"            enableLookups="false"            noCompressionUserAgents="gozilla,traviata"            compressableMimeType="text/html,text/             redirectPort="8443" URIEncoding="UTF-8"/>

tomcat6.conf:

JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -Xms512m -Xmx512m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:PermSize=128M -XX:MaxPermSize=128M -XX:NewRatio=4 -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10208 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.access.file=/usr/share/tomcat6/conf/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/usr/share/tomcat6/conf/jmxremote.password"

Jconsole监控:



 

 

使用默认方式则不会出现这种情况,哪位大神帮忙看看配置是否有问题!谢谢,还望赐教