遇到交换机丢包时,建议先分清物理错误、转发丢弃和拥塞丢包,再讨论缓存或QoS参数。直接调整PFC、ECN阈值或队列权重,容易掩盖真正的拓扑和流量问题。
第一步,保存端口基线。记录接口状态、速率、MTU、物理错误、丢包方向、流量和对端信息。CRC或符号错误更偏向物理层,出口丢弃与队列积压更可能指向拥塞。还要确认统计项是累计值还是速率,并在测试前后读取差值。
第二步,画出汇聚关系。明确每个入口最终进入哪个出口,比较端口速率、路径数量和业务同时启动的时刻。多个同速入口汇聚到一个同速出口,本身就可能形成瞬时排队;如果还存在降速端口、链路聚合分布不均或ECMP路径集中,风险会进一步增加。
第三步,定位具体流量类别和出口队列。检查DSCP或802.1p到交换机优先级、流量类别与出口队列的映射是否符合设计。采集每队列报文、字节、丢弃、队列深度或直方图,以及共享缓冲池占用。端口总计数正常时,某个业务队列仍可能已经溢出。
第四步,验证拥塞反馈。普通TCP场景关注丢包、重传、RED或ECN标记与主机响应;RoCE场景还要核对PFC收发、无损队列、ECN阈值、CNP或端点拥塞控制。PFC是逐优先级的链路级暂停,ECN依赖端点识别并降低发送速率,两者不能互相替代。
第五步,区分微突发和持续过载。使用更细粒度的队列遥测、ASIC直方图或事件工具观察短峰值,同时采集业务P95/P99时延。若队列快速升高后恢复,可能是短时突发;若持续高占用,说明出口容量或流量分布长期不平衡。缓冲只能延后丢包,不能补足持续带宽缺口。
第六步,构造可重复测试。先单发送端建立基线,再逐步增加并发发送端,让流量真实汇聚到同一出口;分别测试固定报文、不同报文大小和实际应用。记录测试时间、拓扑、队列映射与软件版本,确保扩容或调整后能用相同方法复测。
最后再决定动作:路径集中就调整拓扑或哈希,持续过载就增加出口能力或分散业务,优先级错误就修正分类,反馈无效就检查端点配置。只有证据指向缓冲或阈值时,才进行小步调整并保留回滚配置。
排查记录至少应包含测试起止时间、交换机端口与队列、发送端和接收端、流量方向以及变更前后计数差值,避免不同节点的数据被混在一起。