温馨提示×

怎么监控debian backlog

小樊
48
2026-09-07 02:36:19
栏目: 智能运维

在 Debian(以及一般的 Linux)里,backlog 这个词通常出现在几个不同场景里,监控方式也不同。下面我按常见情况给你说明,你可以对号入座。


一、TCP / 网络 backlog(listen backlog)

1️⃣ 什么是 backlog

listen(sockfd, backlog) 中的 backlog,表示:

  • 已完成三次握手、等待 accept() 的连接队列长度上限

2️⃣ 查看当前连接队列状态

ss -lnt

关注:

  • Recv-Q:当前已完成连接、未被 accept 的数量
  • Send-Q:backlog 上限(内核实际值)

示例:

LISTEN 0 128 0.0.0.0:80

说明 backlog 是 128

3️⃣ 查看是否发生溢出(非常重要)

netstat -s | grep -i listen

或

cat /proc/net/netstat | grep ListenOverflows

关键指标:

  • ListenOverflows:backlog 溢出次数
  • ListenDrops:被丢弃的连接

4️⃣ 调整 backlog(应用 + 内核)

应用层(示例):

listen(sockfd, 1024);

内核参数:

sysctl -w net.core.somaxconn=1024

永久生效:

echo "net.core.somaxconn=1024" >> /etc/sysctl.conf
sysctl -p

二、systemd 服务启动 backlog(任务队列)

如果你是问 systemd 的 backlog(任务堆积):

查看服务状态

systemctl status xxx

查看排队任务

systemctl list-jobs

查看启动失败/超时

journalctl -u xxx --since "10 min ago"

三、进程 / 任务队列 backlog(CPU 调度)

查看运行队列(load average)

uptime
top

查看进程等待

vmstat 1

关注:

  • r:运行队列长度(backlog)
  • b:阻塞进程数

四、如果用监控工具(推荐)

Prometheus + Node Exporter

指标:

  • node_netstat_Tcp_ListenOverflows
  • node_netstat_Tcp_ListenDrops

Grafana 示例告警

node_netstat_Tcp_ListenOverflows > 0

五、你具体指的是哪种 backlog?

可以告诉我:

  1. 是 网络端口 backlog?
  2. 是 systemd / 服务启动堆积?
  3. 还是 任务调度 / 队列积压?

我可以直接给你对应的监控脚本或告警规则。

0 踩