在 Linux 中,“backlog” 这个词在不同场景下含义不同,清空方式也不一样。先确认你指的是哪一种:
这是内核参数,不能直接“清空”,只能调小或重启服务
listen(fd, backlog) 中的 backlog 是等待被 accept 的连接队列长度ss -lnt
# 或
netstat -lnt
accept()sysctl -w net.core.somaxconn=1024
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
✅ 没有“清空 backlog”的命令,只能靠消费连接或重启进程
# 查看
journalctl -p err
# 清空(谨慎)
journalctl --vacuum-size=100M
# 或
rm -rf /var/log/journal/*
systemctl restart systemd-journald
sudo dmesg -C
cancel -a
# 查看半连接队列
ss -tan | grep SYN_RECV | wc -l
# 清理方式:
# - 杀掉异常连接
# - 重启服务
# - 防 SYN Flood
| 类型 | 能否清空 | 方法 |
|---|---|---|
| TCP backlog | ❌ | 消费连接 / 重启 |
| journalctl | ✅ | vacuum / 删除 |
| dmesg | ✅ | dmesg -C |
| 打印队列 | ✅ | cancel -a |
如果你能告诉我具体场景(比如 Nginx、Redis、TCP 连接、日志),我可以给你更精确的命令。