以下是Linux下Tomcat的关键配置技巧,涵盖性能、稳定性和安全等方面:
-Xms(初始堆)和-Xmx(最大堆)为相同值(如-Xms4G -Xmx4G),避免动态扩容开销,建议占物理内存的70%-80%。-XX:+UseG1GC -XX:MaxGCPauseMillis=200(目标停顿200ms)。-XX:+UseParallelGC -XX:ParallelGCThreads=CPU核心数。maxThreads:最大并发线程数,建议设为CPU核心数×200(如8核设1600)。minSpareThreads:最小空闲线程数,保持100-200以快速响应突发请求。acceptCount:等待队列长度,配合maxThreads调高(如500),避免请求被过早拒绝。protocol="org.apache.coyote.http11.Http11Nio2Protocol"。protocol="org.apache.coyote.http2.Http2Protocol"(Tomcat 8.5+),提升多路复用效率。connectionTimeout="20000":连接超时20秒。connectionUploadTimeout="120000":大文件上传超时延长至2分钟。<Connector compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/css,application/json"/>
enableLookups="false":关闭DNS反查,提升响应速度。disableUploadTimeout="true":防止上传大文件时阻塞线程。Cache-Control响应头,缓存静态资源(如max-age=3600)。/etc/security/limits.conf,增加nofile(如* soft nofile 65536),避免连接数受限。net.ipv4.tcp_tw_reuse=1:复用TIME_WAIT连接。net.ipv4.tcp_max_tw_buckets=5000:限制TIME_WAIT队列长度。<Connector protocol="AJP/1.3" .../>,减少安全风险。/dev/shm)或按天分割,避免磁盘占满。jconsole监控JVM堆内存和GC,或通过Prometheus+Grafana实时跟踪性能指标。upstream实现Tomcat实例负载均衡,支持轮询、IP哈希等策略。参数调整原则:需根据服务器硬件(CPU/内存)、业务类型(计算/IO密集型)及并发量动态优化,优先通过压测验证配置效果。