鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

调整Tomcat配置

目的

通过调整Tomcat的配置,可以有效地提高服务器的性能。

方法

  • 独立Tomcat的场景
    1. 修改Tomcat安装目录下的Tomcat配置文件“conf/server.xml”中的参数。
      1. 打开文件。
        1
        vim conf/server.xml
        
      2. “i”进入编辑模式,在配置文件中新增如下内容。
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
            <Connector  executor="tomcatThreadPool"
                        port="10000" protocol="HTTP/1.1"
                        acceptCount="10000"
                        maxConnections="10000"
                        connectionTimeout="20000"
                        compression="off"
                        compressionMinSize="2048"
                        URIEncoding="utf-8"
                        tcpNoDelay="true"
                        enableLookups="false"
                        useURIValidationHack="false"
                        disableUploadTimeout="false"
                        connectionUploadTimeout="150000"
                        keepAliveTimeout="12000"
                        maxKeepAliveRequests="1000"
                        redirectPort="8443" />
        

        修改后的截图如下:

      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    2. 启动Tomcat绑核。
      1
      2
      cd /home/apache-tomcat-9.0.69
      taskset -c N ./bin/startup.sh
      
  • Spring Boot内置Tomcat的场景
    1. 修改Spring Boot项目中application.properties文件的配置项,配置项的参数名称、默认值、含义以及优化建议如表1所示。

      例如,需要设置“server.tomcat.max-threads”的值为“300”,直接在配置文件中找到“server.tomcat.max-threads”参数,将原来的值改为“300”即可,即改为server.tomcat.max-threads=300

      表1 application.properties文件的配置项参数名称、默认值、含义以及优化建议

      参数名称

      默认值

      参数含义

      优化建议

      server.tomcat.max-threads

      200

      用于设置Tomcat处理并发请求的最大线程数。

      根据服务器的CPU核心数和内存来调整。

      通常情况下,200300个线程是比较合理的起点。

      server.tomcat.min-spare-threads

      5

      用于设置Tomcat启动时创建的最小线程数。可以确保在负载增加时立即响应请求。

      根据应用负载和预期的并发请求数量来调整。

      通常设置为1020个线程。

      server.tomcat.max-connections

      8192

      用于设置Tomcat允许的最大连接数。

      根据应用的并发连接需求来调整允许的最大连接数。

      对于高流量应用而言,需要增大该参数值。

      server.tomcat.keep-alive-timeout

      60000

      用于设置连接超时的时间(单位为毫秒),在此时间内如果没有数据传输,连接将被关闭。

      设置为1500030000毫秒(即1530秒),使连接保持和资源释放之间达到平衡。

      server.tomcat.max-keep-alive-requests

      100

      用于设置一个连接最多可以处理的请求数。

      在频繁短连接的场景下,可以将Tomcat的长连接功能降低配置,或设为0或1以关闭长连接功能,从而减少因维持连接而产生的资源占用。

      相反,在单连接多请求的场景中,可以增大该设置值,以降低建立连接所带来的响应延迟和资源消耗。

      server.servlet.session.timeout

      30m

      用于设置会话在不活动的情况下过期时长。

      通常,根据用户交互频率来调整连接过期时长,范围一般在30分钟到1小时之间(即设置为“30m”“1h”之间)。

      如果用户通过单个连接频繁发送请求,可以适当延长过期时长;反之,如果请求不频繁,则可以缩短过期时长。

      server.http2.enabled

      false

      用于设置是否启用HTTP/2协议。

      HTTP/2协议是一个重要的网络传输协议,它相较于HTTP/1.1在性能上有了显著的提升。建议启用HTTP/2协议以提高Web应用的性能。设置为true表示启用HTTP/2协议。

      server.max-http-header-size

      8KB

      用于设置HTTP请求头的最大字节数,可以防止客户端发送过大的请求头,导致OOM(Out of Memory)或过大的资源占用。

      在不影响正常业务运行的前提下,合理地降低该配置项的值,有助于提升系统的安全性和稳定性。

      server.compression.enabled

      false

      “server.compression.enabled”参数用于设置是否启用网页压缩功能,当设置为“false”时,表示不启用压缩功能。如果希望减少发送给客户端的数据量,提高传输效率,可以将其设置为“true”来启用压缩功能。

      建议设置为“true”以启用压缩功能,启用网页压缩有助于提高性能。

      server.tomcat.compression.min-response-size

      2KB

      参数用于指定Tomcat服务器执行压缩所需的最小响应大小。

      “min-response-size”设置为“2KB”通常能取得良好效果。表示当响应大小超过2KB时,Tomcat服务器才会对其进行压缩。这个设置有助于避免对非常小的响应进行不必要的压缩,从而节省服务器的资源。

    2. 启动Tomcat绑核。
      1
      2
      cd /home/tomcat-test-01
      taskset -c N java -jar target/tomcat-test-01-0.0.1-SNAPSHOT.jar