在CentOS上优化Tomcat的性能涉及多个方面,包括硬件资源、操作系统配置、Tomcat自身参数调整等。以下是一些具体的优化建议:
/etc/sysctl.conf
文件中的参数:net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
fs.file-max = 65536
echo never /sys/kernel/mm/transparent_hugepage/enabled
echo never /sys/kernel/mm/transparent_hugepage/defrag
/etc/security/limits.conf
文件,提高每个用户的文件描述符限制:* soft nofile 65536
* hard nofile 65536
server.xml
文件中的 Executor
元素调整最大线程数(maxThreads
)和最小空闲线程数(minSpareThreads
):<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="200" minSpareThreads="10" />
Connector
元素中添加 compression
属性,并设置为 on
,以减少网络传输中的数据量:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" />
Connector
配置以启用NIO或NIO2,提高网络I/O性能:<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" />
-Xms
和 -Xmx
参数设置初始堆大小和最大堆大小,避免频繁的堆内存调整:export CATALINA_OPTS="-server -Xms4G -Xmx4G -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:HeapDumpOnOutOfMemoryError=/tmp/tomcat-heap-dump.hprof"
-XX:UseG1GC
或 -XX:UseParallelGC
参数指定。在进行上述优化时,请根据实际情况逐步调整并观察应用表现,避免过度优化。同时,确保优化措施不会影响应用的稳定性和安全性。