在 Debian(或任何 Linux 系统)里说 backlog 很高,通常出现在几个不同场景。你需要先确认是哪一种 backlog,常见有下面几类:
指 listen() 的 accept queue(全连接队列)积压很多:
ss -lnt
# 或
netstat -lnt
看到类似:
LISTEN 100 1000 0.0.0.0:80
第二个数字(如 1000)就是当前 backlog。
somaxconn 和 listen() 参数调得很大,但程序吃不消syn backlog)高,不是 accept queuecat /proc/sys/net/core/somaxconn
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
指 运行队列 / 等待 CPU 的进程多:
top
uptime
# load average 很高
例如:
systemctl list-jobs
看到大量 waiting
iostat 中 await 很高ss -lnt
top
iostat -x 1
somaxconn 或限流,而不是盲目调大如果你能补充:
ss -lnt 或 top 的输出我可以更精确地告诉你原因和调优方式。