在CentOS上优化Tomcat性能可从以下方面入手:
一、JVM参数调优
- 内存配置:设置
-Xms(初始堆)和-Xmx(最大堆)为相同值,避免频繁GC,建议不超过物理内存50%(如-Xms2g -Xmx2g)。 - 垃圾回收器:选择G1或ParallelGC,如
-XX:+UseG1GC,优化大内存堆的垃圾回收效率。
二、连接器(Connector)优化
- 线程池配置:在
server.xml中通过设置maxThreads(最大线程数,建议200-500)、minSpareThreads(最小空闲线程数,建议50-100),并通过的executor属性引用。 - 协议与超时:启用HTTP/2(
protocol="org.apache.coyote.http2.Http2Protocol")提升传输效率,设置connectionTimeout(建议20000ms)和keepAliveTimeout控制连接保持时间。
三、系统级优化
- 文件描述符:编辑
/etc/security/limits.conf,设置* soft nofile 65536和* hard nofile 65536,支持更多并发连接。 - 内核参数:修改
/etc/sysctl.conf,调整net.core.somaxconn=65535、net.ipv4.tcp_tw_reuse=1等参数,优化网络性能。 - 禁用透明大页:在
/etc/rc.local中添加echo never > /sys/kernel/mm/transparent_hugepage/enabled,减少内存碎片。
四、静态资源与缓存
- 启用压缩:在
server.xml的中添加compression="on",减少传输数据量。 - 静态资源缓存:通过配置Servlet容器缓存静态文件(如图片、CSS),降低磁盘I/O压力。
五、监控与调优工具
- 实时监控:使用JConsole、VisualVM或Prometheus+Grafana监控JVM内存、线程状态及系统资源使用情况。
- 负载测试:通过JMeter模拟高并发场景,验证优化效果并调整参数。
六、其他建议
- 关闭不必要的服务:如Tomcat管理界面、AJP协议(若无需与Apache集成)。
- 定期更新:保持Tomcat和系统软件版本最新,修复安全漏洞并获取性能优化。
操作前建议:在测试环境验证配置,逐步调整并观察性能变化,避免过度优化影响稳定性。
参考来源: