linux

Linux backlog如何快速定位

小樊
47
2025-11-21 13:12:01
栏目: 智能运维

Linux backlog快速定位

一 核心概念与判断要点

二 一键定位流程

三 常见现象与对应结论

现象 重点指标/抓包特征 高概率原因 建议动作
客户端偶发连接被拒或超时 ss Recv-Q≈Send-Q;netstat -s 出现 listen queue overflowed 全连接队列满,应用 accept 不及时或 backlog 过小 提高应用 backlog;提高 net.core.somaxconn;优化 accept 线程/异步模型
新连接建立慢,抓包见大量重传 SYN tcpdump 大量 SYN、无或少量 SYN+ACK 半连接队列满/被丢弃(如 tcp_max_syn_backlog 偏小、SYN 洪泛、防火墙丢弃) 增大 tcp_max_syn_backlog;核查防火墙/安全组;必要时启用 syn_cookies
三次握手完成但首包失败 抓包有 SYN、SYN+ACK、ACK;netstat -s 见 SYNs to LISTEN dropped 全连接队列溢出(应用 accept 太慢) 加速 accept 消费;提高 backlog/somaxconn;考虑 tcp_abort_on_overflow 让客户端快速失败
偶发 RST/连接异常 客户端收到 RST 队列溢出后内核发送 RST(取决于 tcp_abort_on_overflow) 先定位根因(accept 慢/队列小),再决定是否开启 tcp_abort_on_overflow
说明:全连接队列上限为min(backlog, somaxconn);半连接队列上限通常≥64且受tcp_max_syn_backlog影响;队列溢出时内核可能计数“listen queue overflowed”或“SYNs to LISTEN dropped”。

四 临时处置与验证

0
看了该问题的人还看了