Tomcat生产环境优化:吞吐量提升300%的实践

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 中的异常和错误。
  • 监控工具:使用 jconsoleVisualVM 或 JMX 监控 JVM 内存、线程和垃圾回收情况

留下评论