浅谈 Tomcat 调优

动静分离

程序中静态资源的访问无疑会消耗 Tomcat 的性能,一般采用 Nginx + Tomcat 实现动静分离。用 Nginx 作静态资源服务器。

配置 Tomcat 线程池

Tomcat 默认不使用线程池模式,可以通过配置线程池优化其性能。打开 server.xml 文件,配置如下:

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

Executor 配置参数说明如下:

  • name:线程池名称
  • namePrefix:线程池中每个线程名称的前缀
  • maxThreads:最大线程数。比如请求数超过 150 时,可以调大线程数,或者采用 Tomcat 集群
  • minSpareThreads:线程池中允许空闲的线程数
  • maxIdleTime:空闲线程存活时间

优化连接器 Connector

    < Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
	       enableLookups="false"
	       maxThreads="3000"
	       minSpareThreads="20"
	       acceptCount="1000"
	       URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

Connector 配置参数说明如下:

  • executor:指定配置的线程池
  • port:连接端口
  • protocol:协议类型
  • enableLookups:关闭 DNS 解析,减少性能损耗
  • maxThreads:最大连接线程数
  • minSpareThreads:最小允许空闲线程数
  • acceptCount:线程等待队列大小
  • connectTimeout:超时时间,单位毫秒
posted @ 2021-09-16 15:35  超级鲨鱼辣椒  阅读(30)  评论(0编辑  收藏  举报