要测试 backlog 上限,首先要明确你指的是哪一类 backlog。不同系统里,“backlog”含义不同,测试方法也不一样。下面我按常见场景分别说明,你可以对号入座。
listen(fd, backlog) 中的 backlognet.core.somaxconn
net.ipv4.tcp_max_syn_backlog
sysctl net.core.somaxconn
sysctl net.ipv4.tcp_max_syn_backlog
listen(server_fd, 5);
然后:
connectconnection refused 或 SYN 丢弃ss 观察ss -ltn
或
ss -tn state syn-recv
# 模拟大量连接
hping3 -S -p 80 --flood 127.0.0.1
⚠️ 注意:
min(backlog, somaxconn)kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe
✅ 明确“backlog”定义
✅ 找到对应的配置项 / 内核参数
✅ 构造“超过上限”的场景
✅ 观察系统行为(拒绝 / 阻塞 / 降级)
✅ 验证监控和告警是否生效
我可以直接给你一份可执行的测试方案或脚本。