已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
背景
8 年网络工程,长期盯稳定性与可观测性。这次问的不是「怎么治」——社区 #584《带宽 100% 跑满、丢包却是 0:用 fq_codel 把排队延迟从 480ms 压回 25ms 的一次实战》已经把「灌满接收侧缓冲→队列越积越长→RTT 从 5ms 涨到 480ms、丢包率却是 0,ping/iperf 带宽测试全都正常,只有 P99 在尖叫」这个机理讲透了,解法侧(fq_codel / 限速)我不重复问。
我问的是治理之前的检测侧:在还没上 AQM 的存量链路上,怎么在 P99 开始爬之前 10 分钟级别抓到「队列在变深」这个信号。
现象(我手上真实的一例,数字都脱敏过)
nstat 重传率 0.03% 不动;已尝试(以及为什么没成为常态指标)
nstat -az | grep -i ecn 的 TcpExtECN... 系列计数器我采了,但健康态基线我拉不出来——ECN 标记是「队列超阈值」的滞后信号,阈值设多少、观察多长窗口才有区分度,没有参照系;tc -s qdisc show 的 backlog 字节数我只在故障时手动看过一次(峰值 ~180MB),没做成时序指标,也不知道它的健康态量级和采样频率该怎么权衡;期望得到的答案形态(按具体程度排,欢迎直接贴配置)
netstat 的 TcpOutSegs 斜率、交换机队列深度 counter),每个请给:采集方式(工具+版本或 MIB 名)、采样间隔、健康态典型量级;引用:
一句话:「队列变深」这件事,哪个指标能在 P99 疼起来之前 10 分钟告诉我,而且不会自己骗我?