在 Debian(或其他 Linux)系统里,“backlog” 通常出现在网络(如 TCP listen backlog)或系统/服务队列积压场景。下面按常见场景给你一套排查思路。
ss -lnt
关注:
Recv-Q:当前积压的连接数Send-Q:backlog 上限(listen backlog)示例:
LISTEN 0 128 0.0.0.0:80
如果 Recv-Q 经常接近 Send-Q,说明 backlog 满了。
查看溢出次数:
netstat -s | grep -i listen
或
cat /proc/net/netstat | grep ListenOverflows
ListenOverflows 增加 → backlog 不够或处理太慢sysctl -a | grep backlog
常见参数:
net.core.somaxconn
net.ipv4.tcp_max_syn_backlog
临时调整:
sysctl -w net.core.somaxconn=1024
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
永久生效:
/etc/sysctl.conf
net.core.somaxconn=1024
net.ipv4.tcp_max_syn_backlog=2048
然后:
sysctl -p
⚠️ 注意:应用层 listen(fd, backlog) 也受 somaxconn 限制。
如果是 socket-activated 服务:
systemctl cat your-service.socket
查看:
ListenBacklog=
常见:
listen 80 backlog=1024;tcp-backloglisten(sockfd, N)应用不调大,内核调了也没用。
lpq
mailq
systemctl list-jobs
backlog 高通常不是“参数小”,而是:
排查工具:
top
htop
iostat -x 1
vmstat 1
✅ 是否是网络?
ss -lnt + ListenOverflows✅ 是否内核限制?
somaxconn / tcp_max_syn_backlog✅ 是否应用限制?
✅ 是否后端慢?
如果你能说明 具体是哪种 backlog(TCP?Nginx?Redis?打印?systemd?),我可以给你更精确的命令和修复方案。