调整Tomcat配置
目的
通过调整Tomcat的配置,可以有效地提高服务器的性能。
方法
- 独立Tomcat的场景
- 修改Tomcat安装目录下的Tomcat配置文件“conf/server.xml”中的参数。
- 打开文件。
1
vim conf/server.xml
- 按“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" />
修改后的截图如下:
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开文件。
- 启动Tomcat绑核。
1 2
cd /home/apache-tomcat-9.0.69 taskset -c N ./bin/startup.sh
- 修改Tomcat安装目录下的Tomcat配置文件“conf/server.xml”中的参数。
- Spring Boot内置Tomcat的场景
- 修改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服务器才会对其进行压缩。这个设置有助于避免对非常小的响应进行不必要的压缩,从而节省服务器的资源。
- 启动Tomcat绑核。
1 2
cd /home/tomcat-test-01 taskset -c N java -jar target/tomcat-test-01-0.0.1-SNAPSHOT.jar
- 修改Spring Boot项目中application.properties文件的配置项,配置项的参数名称、默认值、含义以及优化建议如表1所示。