Tomcat调优的几个方面

1. 提高JVM栈内存Increase JVM heap memory

配置TOmcat的配置文件下的catalinatomcat server folder/bin

  • Windows:catalina.bat
  • Linux:catalina.sh

JVM通常不去调用垃圾回收器,所以服务器可以更多关注处理web请求,并要求尽快完成。 下面,给出这个文件的配置信息,

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC

2. 解决JRE内存泄露

最新的tomcat版本6.0.26及以上就可以解决JRE内存泄露,因为它包含了一个监听器来处理JRE和PermGen的内存泄漏。tomcat server folder/conf/server.xml使用的监听器是

<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

3. 线程池设置

tomcat server folder/conf/server.xml

  • 方法一:直接配置在Connector

      <Connector port="8080" address="localhost"
      maxThreads="250" maxHttpHeaderSize="8192"
      emptySessionPath="true" protocol="HTTP/1.1"
      enableLookups="false" redirectPort="8181" acceptCount="100"
      connectionTimeout="20000" disableUploadTimeout="true" />
  • 方法二:配置Executor(推荐配置)

      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
              maxThreads="250" minSpareThreads="20"/>
    
      <Connector executor="tomcatThreadPool"
                     port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />

4. gzip压缩

tomcat server folder/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8181"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain" />

5. protocol:NIO

tomcat server folder/conf/server.xml

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8181
"compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain"/>

6. Tomcat原生库(APR)-需要Lib

Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能

posted @ 2019-08-01 16:01  *蓄势待发*  阅读(1001)  评论(0编辑  收藏  举报