定期检查 Ubuntu Backlog 的实用方案
一、先明确 Backlog 类型
二、速查表
| 类型 | 关键指标 | 快速检查命令 | 告警阈值建议 |
|---|---|---|---|
| 系统日志 | 日志增长速率、服务错误 | journalctl -u |
错误/失败在短时间内激增 |
| 网络连接 Backlog | Recv‑Q、队列满/丢包迹象 | ss -lnt | Recv‑Q 持续接近/达到 somaxconn |
| 内核队列上限 | net.core.somaxconn、net.ipv4.tcp_max_syn_backlog | sysctl net.core.somaxconn;sysctl net.ipv4.tcp_max_syn_backlog | 默认值 128 常需调大 |
| Cron 任务 | 失败/长时间未执行 | crontab -l;systemctl status cron;grep CRON /var/log/syslog | 失败任务数或延迟持续增长 |
| 打印队列 | 队列长度、打印机状态 | lpstat -p -d;lpq -P |
队列长度持续增长 |
| 软件包更新 | 可升级数量 | apt list --upgradable | 数量异常增多 |
| Postfix 队列 | 待发邮件数 | postqueue -p | 队列持续增长 |
| MySQL 进程 | 长时间运行/锁等待 | mysql -e “SHOW PROCESSLIST” | 大量 Sleep/长时间执行 |
| 上述命令与指标含义见参考文档。 |
三、命令行快速检查示例
四、设置定期检查与告警
# crontab -e
0 * * * * /usr/bin/ss -lnt | awk 'NR>1 {if($2>800) printf "WARN: %s Recv-Q=%s\n", $4, $2}' | mail -s "High TCP backlog" admin@example.com
0 2 * * * /usr/bin/apt list --upgradable | wc -l | mail -s "Daily upgradable packages count" admin@example.com
groups:
- name: backlog
rules:
- alert: HighBacklog
expr: backlog_queue_length > 1000
for: 1m
labels:
severity: warning
annotations:
summary: "High backlog detected"
description: "The backlog queue length has exceeded the threshold."
五、发现异常时的处置要点