通过日志优化Tomcat连接数需结合日志分析定位瓶颈,再针对性调整配置,核心步骤如下:
503 Service Unavailable可能因连接数不足),判断是否为连接数瓶颈。java.net.SocketException: Too many open files(文件描述符不足)或OutOfMemoryError(内存不足导致无法创建线程)等错误。server.xml参数:
maxThreads:根据服务器资源(如CPU核心数×200)设置最大线程数,处理高并发请求。acceptCount:设置合理的排队队列长度,避免请求被过早拒绝。protocol改为Http11NioProtocol,提升高并发处理效率。<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="500" minSpareThreads="50" acceptCount="200" />
<Executor>共享线程池,避免为每个连接器单独创建线程。/etc/security/limits.conf,设置nofile为65536或更高。/etc/sysctl.conf中net.core.somaxconn等参数。catalina.sh中设置-Xms和-Xmx(建议设置为相同值,避免频繁扩容),并启用G1垃圾回收器-XX:+UseG1GC。jconsole、VisualVM或APM工具(如Prometheus+Grafana)监控线程池使用率、内存占用等指标,动态调整参数。关键参数参考:
| 参数 | 典型值(高并发场景) | 说明 |
|---|---|---|
maxThreads |
500-2000(根据CPU核心数调整) | 最大并发处理线程数 |
acceptCount |
200-500 | 请求排队队列长度 |
maxConnections |
10000+ | 最大允许的连接数(需结合系统资源) |
通过以上步骤,可有效利用日志分析结果优化Tomcat连接数,提升系统并发处理能力。