Linux backlog 测试方法与步骤
一、关键概念与判定依据
二、测试准备与基线检查
三、验证全连接队列满的行为
四、观测指标与工具对照表
| 关注点 | 工具与命令 | 判定要点 |
|---|---|---|
| 全连接队列当前长度 | ss -lntp | Recv-Q 接近 Send-Q(= min(backlog, somaxconn))说明队列满 |
| 半连接队列与溢出 | ss -s;/proc/net/snmp | SYNs queued 增长、ListenOverflows/ListenDrops 增加 |
| 内核实际采用的 backlog | SystemTap 探测 inet_connection_sock.sk_max_ack_backlog | 打印出实际生效的 sk_max_ack_backlog |
| 握手细节与丢包 | tcpdump -nn -ttt ‘tcp port <端口>’ | SYN 重传、缺失 SYN-ACK、溢出时是否出现 RST |
| 监听套接字配置 | ss -lntp;cat /proc/sys/net/core/somaxconn | Send-Q 与 somaxconn 一致性;应用 backlog 与 somaxconn 的关系 |
以上工具与字段可交叉验证,避免单一指标误判。
五、常见问题与排错要点