在 Linux 里,“backlog” 通常出现在几个不同场景,清除/处理方式也不一样。先确认你指的是哪种:
指 listen(fd, backlog) 中等待 accept 的连接队列(半连接 / 全连接队列)。
ss -lnt
# 或
netstat -lnt
关注:
Recv-Q:当前已完成但未被 accept 的连接数Send-Q:backlog 上限半连接队列:
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
backlog 不能直接“清空”,只能被应用程序 accept 掉
常见处理:
# 增大队列
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
如果是 SYN Flood 攻击:
sysctl -w net.ipv4.tcp_syncookies=1
指服务启动失败或排队中的任务。
systemctl list-jobs
systemctl reset-failed
这不是系统级 backlog,而是应用层。
rabbitmqctl purge_queue queue_name
lpstat -o
cancel -a
可以告诉我:
我可以直接给你对应命令。