“backlog” 在 Debian / Linux 语境里通常指 网络 backlog(TCP listen backlog) 或 systemd / 内核队列,而不是 Debian 软件包里的“待办任务”。下面按最常见场景给你一套优化思路。如果你指的是其他 backlog(如 apt、systemd 任务、打印队列),可以再说明。
listen() backlog 参数如果你是自己开发服务(如 Nginx、Java、Go、C):
listen(fd, backlog);
建议值:
⚠️ 注意:
应用 backlog 不能超过内核限制,否则会被截断。
sysctl net.core.somaxconn
sysctl net.ipv4.tcp_max_syn_backlog
sudo sysctl -w net.core.somaxconn=8192
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sudo nano /etc/sysctl.d/99-backlog.conf
net.core.somaxconn = 8192
net.ipv4.tcp_max_syn_backlog = 8192
然后:
sudo sysctl --system
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
如果你用的是 systemd socket 激活服务:
systemctl list-sockets
在 .socket 文件中:
[Socket]
Backlog=2048
然后:
sudo systemctl daemon-reload
sudo systemctl restart your.socket
listen 80 backlog=8192;
并确认内核参数已调大。
netstat -s | grep -i listen
或:
ss -lt
关注:
listen overflowdropss -lnt
irqbalance请明确说明:
我可以给你针对性方案。
net.core.somaxconn = 8192
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_syncookies = 1
应用层 backlog ≥ 内核值
用 ss -lnt / netstat -s 验证是否溢出
如果你愿意,可以贴出:
我可以帮你给出精确数值配置。