CentOS上提升Tomcat运行效率的实用清单
一 系统层优化
tomcat soft nofile 65536
tomcat hard nofile 65536
保存后重新登录或重启会话生效。该调整可避免“打开文件过多”限制并发连接与文件I/O。net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 65536
执行 sysctl -p 使配置生效。这些参数有助于提升TCP连接队列与文件句柄可用性,改善高并发场景下的连接处理能力。echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
为持久化,可将其加入系统启动脚本(如 /etc/rc.local 或 systemd 服务 ExecStartPre)。二 Tomcat配置优化
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100"/>
<Connector executor="tomcatThreadPool"
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
maxKeepAliveRequests="100"
maxConnections="10000"/>
要点:合理设置 maxThreads(并发处理线程)、acceptCount(排队队列)、开启 compression(Gzip压缩)、适度提高 maxKeepAliveRequests 与 maxConnections 以匹配业务并发与长连接特性。<Connector port="8443"
protocol="org.apache.coyote.http2.Http2Protocol"
maxThreads="150"
SSLEnabled="true"/>
注意:启用前准备有效证书与密钥,并评估对CPU与TLS开销的影响。三 JVM与垃圾回收调优
export JAVA_OPTS="$JAVA_OPTS -server \
-Xms2g -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=45"
说明:堆大小应结合物理内存与应用对象生命周期谨慎设置,避免过大导致GC停顿过长或过小引发频繁回收。# 方式一:JVM参数
export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
# 方式二:安装并启动rngd
yum install -y rng-tools
systemctl start rngd
systemctl enable rngd
该优化对依赖安全随机数的场景(如SSL初始化)尤为有效。四 数据库与应用层协同优化
五 监控验证与回退