centos

为何Tomcat连接数达到上限

小樊
33
2025-11-23 23:58:19
栏目: 智能运维

Tomcat连接数触顶的常见根因

快速自检步骤

  1. 查看 Tomcat 线程与连接器配置:确认当前 maxThreads、是否使用外部 Executor 及其 maxQueueSize、以及 maxConnections/acceptCount 的取值与搭配是否合理。
  2. 观察连接状态分布:统计 ESTABLISHED / TIME_WAIT / CLOSE_WAIT 的数量与增长趋势(如 netstat/ss)。TIME_WAIT 过多提示短连接回收压力大;CLOSE_WAIT 过多提示应用未关闭连接。
  3. 检查系统资源:
    • 句柄与进程限制:cat /proc/sys/fs/file-max、ulimit -n、/proc//fd | wc -l
    • 端口范围:cat /proc/sys/net/ipv4/ip_local_port_range
    • 内核队列:cat /proc/sys/net/core/somaxconn
  4. 抓取网络与内核日志:高峰期用 ss -lntp 观察 Recv-Q 是否长期打满;必要时配合抓包与内核日志定位是队列溢出还是应用层异常。

优化与配置建议

典型现象与对应处置

现象 可能原因 处置要点
新连接被拒绝或客户端报 Connection reset accept 队列溢出(acceptCount 或内核 somaxconn 过小) 提升 acceptCount 与 net.core.somaxconn,观察 Recv-Q 是否回落
吞吐下降、线程打满、请求排队 maxThreads 不足或外部 Executor 队列过长 提高 maxThreads;为 Executor 设置有限 maxQueueSize 与拒绝策略
大量 TIME_WAIT 短连接并发高、端口与回收参数不合理 扩大 ip_local_port_range,开启 tcp_tw_reuse,缩短 tcp_fin_timeout
大量 CLOSE_WAIT 应用未关闭连接/响应流 代码审计确保 close/flush,排查 Filter/Servlet 异常路径
新连接建立极慢或失败 文件句柄/端口耗尽 提升 ulimit -n、/proc/sys/fs/file-max 与端口范围,排查句柄泄漏

0
看了该问题的人还看了