Tomcat性能优化

因为Tomcat不同版本之间的优化配置有所差别,这里以Tomcat7为例进行讲解。

1.禁用AJP协议,达到在集群的时候提高处理请求的时间。

禁用方法:在server.xml中,将<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

注释掉,重新启动tomcat,这时我们可以看到控制台上已经不存在“ajp-bio-8089”,说明AJP协议已被禁用。

2.将BIO通讯模式修改为NIO通讯模式。

Tomcat通讯协议支持http1.0和http1.1,Tomcat默认走的是BIO通讯模式(为了兼容Java4以下的版本),配置方法如下:

在server.xml中 ,将 <Connector connectionTimeout="20000" port="8066" protocol="HTTP/1.1" redirectPort="8448"/>

改为:

<Connector connectionTimeout="20000" port="8066" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8448"/>

其中,原来的protocol="HTTP/1.1"表示遵循http1.1协议,同时,也是一个最原始的未经优化的通信协议。

3.启用外部连接池,来满足高并发已经复用的请求。

配置方法如下:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="4"/>注释打开,并修改maxThreads的值,然后在<Connector connectionTimeout="20000" port="8066" protocol="org.apache.coyote.http11.Http11NioProtocol"/>

中加入 executor="tomcatThreadPool",即最后为:

<Connector connectionTimeout="20000" port="8066" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"/>

其中maxThreads表示Tomcat起动的最大线程数,即同时处理的任务个数,默认值为200。

根据业务场景和服务器硬件资源条件可以适当的加大线程连接池,根据第三方工具去开启并发测试来确定一个最好的连接池数。

4.优化连接器。

配置Connector标签如下:

<Connector port="8066" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"

            connectionTimeout="20000"

            enableLookups="false"

            maxPostSize="10485760"

            URIEncoding="UTF-8"

            useBodyEncodingForURI="true"

            acceptCount="100"

            acceptorThreadCount="2"

            disableUploadTimeout="true"

            maxConnections="10000"

            SSLEnabled="false"  />

5.设置JVM参数。

修改bin/catalina.bat文件设置参数(注释后第一行),增加:

 set JAVA_OPTS=-Dfile.encoding=UTF-8

  -server

  -Xms1024m

  -Xmx2048m

  -XX:NewSize=512m

  -XX:MaxNewSize=1024m

  -XX:PermSize=256m

  -XX:MaxPerPermSize=356m

  -XX:NewRatio=2

  -XX:MaxTenuringThreshold=50

  -XX:+DisableExplicitGC

以上便是我个人所了解的Tomcat的性能优化方法,欢迎补充指正。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 优化内存 /bin/catalina.sh添加JAVA_OPTS参数jdk1.7 jdk1.8 1.8版本中已经没...
    黄言黄语阅读 8,825评论 0 4
  • 用了很久的Tomcat,没怎么看过它的优化,今天抽出时间研究了下,将内容记录下。 首先,是客户端访问tomcat的...
    为技术疯狂阅读 4,562评论 0 0
  • 前言 由于不同的硬件配置导致默认的tomcat配置无法达到最佳的性能,导致我们需要对tomcat的进行相应的配置调...
    千锋陈老师阅读 3,097评论 0 0
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不...
    hangba843阅读 4,079评论 0 1
  • 大学的第一课,教会了我耐心。耐心的等待录取通知书
    一米八25658阅读 760评论 0 0