Tomcat在Debian上的性能瓶颈破解方法
server.xml中配置示例:<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" />server.xml中配置HTTPS连接器时添加protocol="org.apache.coyote.http2.Http2Protocol"。maxConnections(最大连接数,默认10000,可根据服务器资源调整)、connectionTimeout(连接超时时间,默认20秒,避免过长占用资源)、acceptCount(等待队列大小,默认100,队列过长会导致请求被拒绝)。server.xml中定义Executor并关联到Connector:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" maxQueueSize="100" /><Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />maxThreads(最大线程数)根据CPU核心数调整(如4核CPU可设为200-400),minSpareThreads(最小空闲线程数)保持50-100以快速响应新请求。-Xms)和最大堆(-Xmx),避免频繁扩容。例如:export CATALINA_OPTS="-Xms2g -Xmx4g"(初始2GB,最大4GB)。export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC"。-XX:MetaspaceSize)和最大大小(-XX:MaxMetaspaceSize),避免元空间溢出。例如:export CATALINA_OPTS="$CATALINA_OPTS -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g"。net.core.rmem_max、net.core.wmem_max)、调整SYN队列长度(net.ipv4.tcp_max_syn_backlog),提升并发连接处理能力。修改/etc/sysctl.conf后执行sysctl -p生效。/etc/security/limits.conf添加:* soft nofile 65535* hard nofile 65535(用户软/硬限制设为65535)。compression属性开启gzip压缩,减少网络传输数据量。在server.xml的Connector中添加:compression="on"compressionMinSize="2048"(最小压缩大小,单位字节)compressableMimeType="text/html,text/xml,text/plain,application/json"(需要压缩的MIME类型)。server.xml的Connector中设置enableLookups="false",避免Tomcat对客户端IP进行DNS反向解析(消耗网络资源)。