监控告警出网带宽持续打满,网站打开很慢但 CPU 和磁盘都正常,不知道流量到底是谁发出去的。

原因不止一个,得分开看。备份或者同步任务在业务时段跑了。也可能是站点被大量抓取或者遭遇异常请求。

还有一种情况,程序异常重试,短时间内产生大量请求。

先按连接看实时流量

iftop -nNP -i eth0

再往下按进程看流量归属

nethogs eth0

接着统计异常来源地址

ss -tn state established | awk '{print $5}' | sort | uniq -c | sort -rn | head

等前面都确认过,再确认是否有限速策略

tc qdisc show dev eth0

同事提醒我看一下最近一次发布,时间点确实对得上。

命令输出我都留了记录,免得改完记不清原来的值。

恢复的判定其实很直接。找到流量来源后限流或者推迟任务,带宽回落到告警阈值以下,站点响应恢复。

容易忽略的是,只限速不查来源会把问题变成长期状态;先确认是业务正常增长还是异常请求,处理方式完全不同。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189