Linux backlog 兼容性测试方案
一 关键原理与判定标准
二 测试环境与工具
三 测试用例与步骤
| 测试项 | 内核/应用设置 | 客户端行为 | 预期与验证点 |
|---|---|---|---|
| 基本生效值 | somaxconn=128/4096;应用 backlog=511 | 持续发起连接直至稳态 | accept 队列上限应为 min(511, somaxconn);用 ss 的 Send-Q 观察上限 |
| 半连接受限 | tcp_max_syn_backlog=128/4096;应用 backlog=1024;服务器不 accept | 短时突发大量握手 | 半连接队列满时可能出现 SYN 重传、客户端 ETIMEDOUT;netstat -s 中 listen 溢出计数增长 |
| accept 队列受限 | somaxconn=128;应用 backlog=1024;服务器不 accept | 持续发起连接直至稳态 | 队列满后新完成握手无法入队,客户端可能见 ECONNREFUSED/RST 或超时;ss 显示 Send-Q≈128 并稳定 |
| 正常处理路径 | 合理 backlog(如 1024);服务器及时 accept | 恒定速率长连/短连混合 | 队列不长期打满;客户端错误率低;无异常重传与 RST 风暴 |
四 判定与常见问题