Print
知

Nexus 9504 出方向 ASIC 缓冲区耗尽导致业务丢包

22小时前 发表

问题描述

Nexus 9504 配置两块 N9K-X9736C-FX 业务板卡。测试流量以 100Gbps 从 Ethernet1/1 进入,经 40Gbps 接口 Ethernet2/2 转发。

测试过程中,设备出现 BUFFER_THRESHOLD_EXCEEDED 告警,提示 ASIC 缓冲区使用率超过阈值;出口接口 Output Discards 计数增加,业务发生丢包。Cisco 原文测试环境采用 NX-OS 9.3(8)。

过程分析

  • 执行 show interface Ethernet2/2,确认出口速率及 Output Discards,结合业务路径判断拥塞位置。
  • 执行 show interface hardware-mappings,建立接口与 ASIC Unit、Slice 的对应关系,并将告警中的 Module、Instance 映射到实际硬件位置。
  • Cloud Scale ASIC 使用出方向共享缓冲架构,因此应检查出口所在板卡。执行 attach module 2,进入 2 号板卡后执行 show hardware internal tah buffer counters。
  • 原文输出显示对应 Slice 的 Occupancy drops 非零,表明缓冲池已满并发生丢包。
  • 将硬件丢包计数与 100Gbps 入、40Gbps 出的流量关系交叉验证,确定出口超额订阅导致缓冲区耗尽。对于间歇性故障,还需检查微突发,平均带宽统计不足以排除瞬时拥塞。

解决方法

优先提高拥塞出口的带宽,消除高速入口向低速出口汇聚形成的瓶颈。对于多流量汇聚场景,可通过配置端口聚合或增加聚合成员扩展总带宽。

无法扩容时,根据业务优先级实施端到端 QoS 和队列策略。若存在间歇性丢包,启用平台支持的微突发监测,进一步确认瞬时拥塞情况。

处理后,在相同业务负载下复测,比较出口 Output Discards 和 ASIC Occupancy drops 的增量,验证措施效果。调整缓冲区告警阈值只改变监测行为,不能消除拥塞。