Tomcat优化
JVM参数
编辑 TOMCAT_HOME/bin/catalina.sh
文件,找到 JAVA_OPTS
变量,并添加 JVM 参数。
-Xms
:初始堆内存大小。-Xmx
:最大堆内存大小。-XX:PermSize
:永久代初始大小(Java 8 及以上版本使用元空间)。-XX:MaxPermSize
:永久代最大大小(Java 8 及以上版本使用元空间)。-XX:MetaspaceSize
:元空间初始大小(Java 8 及以上版本)。-XX:MaxMetaspaceSize
:元空间最大大小(Java 8 及以上版本)。-XX:+UseG1GC
:使用 G1 垃圾回收器。适合大内存应用。-Xss
:每个线程的栈大小。
bash
# 修改或添加以下行
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseG1GC -Xss256k"
连接器优化
编辑 server.xml 。
protocol="org.apache.coyote.http11.Http11NioProtocol"
:使用 NIO 连接器,提高性能。maxThreads
:设置最大线程数,根据服务器性能调整。acceptCount
:设置接受队列的大小,当所有线程都忙时,新连接将被放入队列中等待。
bash
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
acceptCount="100"
maxThreads="500"
connectionTimeout="20000"
redirectPort="8443" />
调整线程池
编辑 server.xml
maxThreads
:最大线程数。minSpareThreads
:最小空闲线程数。maxIdleTime
:线程的最大空闲时间。
bash
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="50"
maxIdleTime="60000" />
启用压缩
编辑 server.xml
compression
:启用压缩。compressionMinSize
:最小压缩大小。noCompressionUserAgents
:不压缩的用户代理。compressableMimeType
:可压缩的 MIME 类型。
bash
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="Gozilla,Travelscape"
compressableMimeType="text/html,text/xml,text/plain,application/json" />