Cisco N9K 输出丢弃

网络工程 cisco-nexus
2021-07-14 04:44:26

我们在几个 N9K-C9372PX 中遇到了输出丢弃。似乎出口队列已满,最终以大量丢弃的数据包结束。

所有发生丢弃的接口都是 NEXUS 接口(到 FEX)

show interface ethernet 1/21 | inc "output discard" 
0 lost carrier 0  no carrier 0 babble 32043410 output discard

带宽明智他们没问题。我认为这是由于来自多个上行链路的突发流量(来自 6 个上行链路到 2 个 FEX 端口的流量)。因此,像 DNS 查询这样使用 UDP 数据包的东西真的会被破坏。你能说一下如何检查缓冲区的大小以及它们是如何填满的吗?

我想知道:这种行为有什么解决方法吗?

现在我们使用:

show hardware qos ns-buffer-profile 
NS Buffer Profile: Burst optimized

我看到有这样的命令:

hardware qos ns-buffer-profile ultra-burst

也许您知道,在我们的情况下,超连拍模式会有所帮助吗?输入该命令有什么要求?它需要重新启动吗?

或者也许可以进行某种类型的排队,我们会以不同的方式处理 UDP 数据包?

我们也有一些较旧的 N5K-C5672UP、N5K-C5548UP,他们没有经历过。也许他们有“更大的硬件”缓冲区?

感谢您提供任何意见。

1个回答

作为直通交换机的 Nexus 与我们许多人已经习惯的存储转发交换机不同。他们必须使用与经典输出队列不同的策略来处理速度下降。

到 FEX 的下行链路通常是 10G 的 LACP 包。因此,如果存在指向以 40G 运行的给定 N9K-C9372PX 的链接,那么到相关 FEX 的速度将会下降——并且必须丢弃一些数据包。

以下链接可能是 N9K 系列内部工作原理的入口——可能仍然值得花时间阅读。

Cisco Nexus 9300 平台缓冲区和队列架构

从中:

Buffer Boost 是一个出口端口配置属性。它可以在每个端口的基础上启用或禁用。默认情况下,它在所有 NFE 1 和 10 Gigabit 以太网前面板端口上启用。

Cisco Nexus 9000 系列交换机上的智能缓冲区管理白皮书


[评论后的附加组件 1:]

我很好奇当我的流量仅通过 10GB 接口时,硬件 qos ns-buffer-profile ultra-burst 是否会改变某些内容。

根据Cisco Nexus 9300 平台上的文档缓冲区增强功能,一旦启用缓冲区增强,NFE 端口(例如 10G 端口)——如果这样配置(每个端口)——可以从 ALE-2 的 25MByte 缓冲区借用额外的缓冲区空间。与默认情况下 NFE 端口具有的 12Mbyte 共享缓冲区空间相比,我认为这有很大不同。

[/附加 1]


[经过更多研究后的附加组件 2]

在博客空间中找到:微突发/突发流量:Cisco Nexus 9508 with N9K-9564PX linecard - ALE/Northstar Buffer那是针对 N9K-9564PX 线路卡,但所描述的症状和架构可能与 N9K-9372PX 没有太大的不同。他们观察到未充分利用的链接出现异常数量的下降,并找到了激活缓冲区提升的解决方案。但是,该博客文章不包含有关激活后需要重新启动电源的任何信息。

从哪里:

解决方案

我相信你现在已经弄清楚我们做了什么来解决我们的问题。我们已将缓冲区从“Mesh Optimized”更改为“Burst Optimized”,这似乎处理了我们的突发流量。我们仍然有少量丢弃物(2 天内 1 或 2 次),但对我来说,这仍然是可以接受的。此外,我们还有“Ultra Burst”选项可用。以下是更改这些线路卡上缓冲区的极少数命令。

[/附加组件 2]