Tomcat 是一个轻量级的 Java Web 应用服务器,其性能主要受 JVM 内存、线程池和垃圾回收策略影响。
1、JVM 内存与垃圾回收
- 堆内存设置:这是最关键的调优参数。
-Xms512m -Xmx1024m:设置 JVM 堆内存的初始大小(-Xms)和最大大小(-Xmx)。建议将 -Xms 和 -Xmx 设置为相同值,以避免运行时堆内存动态调整带来的性能波动。具体数值应根据服务器可用物理内存和应用需求而定,例如可设置为系统物理内存的80%左右。
- 选择垃圾回收器:
-XX:+UseG1GC:对于需要低延迟的应用,推荐使用 G1 垃圾回收器,它能在延迟和吞吐量间取得较好平衡。
2、连接器与线程池优化
在 conf/server.xml 中优化 HTTP 连接器 (<Connector>)。
- 协议:使用 NIO 协议(
protocol="HTTP/1.1"),其并发性能更好。
- 线程池:
maxThreads="200":最大工作线程数,应根据系统负载和CPU核心数调整。
minSpareThreads="25":最小空闲线程数,用于快速响应突发请求。
acceptCount="100":当所有可用线程都被占用时,传入连接请求的最大队列长度。
3、应用部署与安全
- 部署优化:将静态资源(如图片、CSS、JS)交由 Nginx 等前端服务器处理,减轻 Tomcat 负担。
- 安全加固:以非 root 用户运行 Tomcat,并禁用不需要的 AJP 连接器(通常可注释掉)。
4、维护与监控
- 日志管理:关注
logs/catalina.out 和 logs/localhost.yyyy-mm-dd.log 中的异常和错误。
- 监控工具:使用
jconsole、VisualVM 或 JMX 监控 JVM 内存、线程和垃圾回收情况。