以下是Tomcat在CentOS上的性能调优要点:
一、JVM参数调优
- 内存配置:通过
-Xms和-Xmx设置初始堆和最大堆大小(建议设置为物理内存的60%-80%),避免频繁GC。export JAVA_OPTS="-Xms1024m -Xmx2048m" - 垃圾回收器:选择G1(适合大内存)或ParallelGC,通过
-XX:+UseG1GC指定。 - 新生代比例:通过
-XX:NewRatio调整新生代与老年代比例(如-XX:NewRatio=2)。
二、连接器(Connector)优化
- 线程池配置:在
server.xml中通过设置maxThreads(最大线程数,建议500-1000)、minSpareThreads(最小空闲线程数,建议50-100)。 - 协议优化:使用NIO或NIO2协议(
protocol="org.apache.coyote.http11.Http11Nio2Protocol"),提升并发性能。 - 启用压缩:添加
compression="on"减少传输数据量。
三、系统级优化
- 文件描述符限制:编辑
/etc/security/limits.conf,增加nofile限制(如* soft 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。
四、缓存与静态资源处理
- 启用静态资源缓存:通过
标签配置cacheControl属性,减少磁盘访问。 - 压缩响应数据:在
Connector中启用Gzip压缩(compression="on")。
五、监控与调优工具
- 实时监控:使用JVisualVM、JConsole或Prometheus+Grafana监控内存、CPU、线程状态。
- 负载测试:通过JMeter模拟高并发场景,验证优化效果。
注意事项
- 逐步调整参数,避免过度优化导致资源浪费或稳定性问题。
- 优化后需进行充分测试,确保应用兼容性和性能提升。
参考来源:[1,3,4,5,6,7,8,9,10,11]