---
title: 调整Tomcat配置
description: "通过调整Tomcat的配置，可以有效地提高服务器的性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengwebs/ecosystemEnable/Tomcat/kunpengtomcat_05_0015.html
sourcePath: /source/zh/kunpengwebs/ecosystemEnable/Tomcat/kunpengtomcat_05_0015.html
indexId: ac41c3f7c8ff2f763763e17419557dbec06e9ed57fdb9007aa1764ef62cafd6872
---
# 调整Tomcat配置

#### 目的

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


#### 方法

- 独立Tomcat的场景

  1. 修改Tomcat安装目录下的Tomcat配置文件“conf/server.xml”中的参数。

    a. 打开文件。
      1 vim conf/server.xml

    b. 按“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" />

      修改后的截图如下：

    c. 按“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核心数和内存来调整。 通常情况下，200～300个线程是比较合理的起点。 |
| server.tomcat.min\-spare\-threads | 5 | 用于设置Tomcat启动时创建的最小线程数。可以确保在负载增加时立即响应请求。 | 根据应用负载和预期的并发请求数量来调整。 通常设置为10～20个线程。 |
| server.tomcat.max\-connections | 8192 | 用于设置Tomcat允许的最大连接数。 | 根据应用的并发连接需求来调整允许的最大连接数。 对于高流量应用而言，需要增大该参数值。 |
| server.tomcat.keep\-alive\-timeout | 60000 | 用于设置连接超时的时间（单位为毫秒），在此时间内如果没有数据传输，连接将被关闭。 | 设置为15000～30000毫秒（即15～30秒），使连接保持和资源释放之间达到平衡。 |
| 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
