在 Linux 中,“backlog” 可能指几种不同的东西,常见有:
listen() 的 backlog)下面按常见场景说明如何“清空”或“释放” backlog。
ss -lnt
# 或
netstat -lnt
示例输出中:
Recv-Q Send-Q Local Address:Port
0 128 0.0.0.0:80
Send-Q 对该监听 socket 表示 backlog 上限Recv-Q 表示当前 已完成连接但未 accept 的连接数无法直接“清空”,只能被进程 accept 或关闭
方法:
systemctl restart nginx
# 查看
cat /proc/net/netstat | grep TcpExt
清空方式:
iptables -A INPUT -p tcp --syn -j DROP
# 一段时间后删除
iptables -D INPUT -p tcp --syn -j DROP
ss -tn
Recv-Q / Send-Q 表示缓冲区积压
kill -9 <pid>
systemctl restart <service>
lpstat -o
cancel -a
或
lprm -
journalctl --vacuum-size=100M
systemctl reset-failed
ipcs -q
ipcrm -q <msqid>
重启相关服务或进程
systemctl restart <service>
或
kill -9 <pid>
如果你能说明是 哪种 backlog(例如:Nginx、Redis、Kafka、TCP 连接、打印队列等),我可以给你更精确的操作命令。