PFC 看门狗
PFC 看门狗概述
基于优先级的流控制 (PFC) 允许对每个服务等级进行独立的流量控制,以确保拥塞不会导致帧丢失。PFC 暂停帧指示链路伙伴停止数据包传输。这些帧可以通过网络传播,导致 PFC 流上的流量在所谓的 PFC 暂停风暴中停止。使用 PFC 看门程序 检测并解决 PFC 暂停风暴。
PFC 看门狗监控启用 PFC 的端口是否存在 PFC 暂停风暴。当启用了 PFC 的端口长时间收到 PFC 暂停帧,并且无法在启用 PFC 的队列上调度任何数据包时,PFC 看门程序会进行干预。PFC 看门狗通过禁用在设定时间长度内检测到 PFC 暂停风暴的队列来缓解这种情况。此时间长度称为恢复时间,是可配置的。恢复时间过后,PFC 看门狗会重新启用受影响的队列。
您可以监控特定接口上已检测到和恢复的 PFC 暂停风暴数量,以及已丢弃的数据包数。
在无损以太网交换矩阵(例如 AI-ML 数据中心中使用的交换矩阵)中,PFC 看门狗在保持交换矩阵无损方面发挥着关键作用,即使在拥塞期间也是如此。
使用 功能浏览器 确认平台和版本对特定功能的支持。
好处
-
快速检测并解决 PFC 暂停风暴。
-
维护无损流量链路。
-
提高链路质量。
了解 PFC 看门狗
PFC 看门狗有三个关键功能:检测、缓解和恢复。
检波
PFC 看门狗定期检查 PFC 队列的状态,称为 轮询间隔。如果 PFC 看门狗发现具有非零暂停计时器的 PFC 队列,它会将队列的当前传输计数器寄存器寄存器与上次记录的值进行比较。如果 PFC 队列自上次轮询间隔以来未传输任何数据包,则 PFC 看门狗将检查队列中是否有任何数据包。如果队列中有未传输的数据包,且该端口上没有流控制帧,则 PFC 看门狗将检测失速情况。
PFC 看门狗会定期监控启用了 PFC 的队列,以便在队列为空时下游设备进行连续的 PFC 暂停断言。如果发生这种情况,PFC 看门狗将检测到失速情况。系统必须在指定的时间内检测到此失速情况。此时间长度取决于您配置两个语句的方式: poll-interval 和 detection。
PFC 看门狗定期检查 PFC 队列的状态。使用 poll-interval 语句配置此间隔(以毫秒为单位)。PFC 看门狗在每个轮询间隔内检查一次队列的状态。默认间隔为 100 毫秒。最小间隔为 100 毫秒,最大间隔为 1000 毫秒。
PFC 看门狗必须检测至少连续两个轮询间隔的停滞情况,然后才能确定 PFC 队列已停滞。配置 detection 语句以控制 PFC 看门狗在缓解停滞流量之前等待的轮询间隔数。默认值为两个轮询间隔。最大轮询间隔为 10 次。
总检测时间是轮询间隔的长度乘以轮询间隔数。
缓解
当 PFC 看门狗检测到 PFC 队列已停止时,它会将队列移动到缓解状态。首先,它会在一段时间内禁用检测到 PFC 暂停风暴的队列,该队列称为恢复时间。
配置 pfc-watchdog-action 语句以指定 PFC 看门狗为缓解流量拥塞而采取的作。唯一的选项是删除作。它会丢弃所有排队的数据包以及停滞的 PFC 队列中所有新到达的数据包。在恢复期间,系统会监控 PFC 队列上的所有丢包。
恢复
恢复时间结束时,PFC 看门狗将收集入口丢弃计数器以及与禁用 PFC 队列关联的任何其他丢弃计数器。PFC 看门狗会统计上次恢复期间丢失的数据包,以及自设备启动以来由于 PFC 缓解而丢失的数据包总数。然后,PFC 看门狗会恢复队列并重新启用 PFC。
使用语 recovery 句配置 PFC 看门狗禁用受影响队列的时间。最短恢复周期为 200 毫秒,最长恢复周期为 10,000 毫秒。恢复时间过后,PFC 看门狗会在受影响的队列上重新启用 PFC。
配置 PFC 看门狗
您可以在所有启用了 PFC 的队列上启用 PFC 看门狗。PFC 看门狗恢复是全局设置,因此需要在所有端口上执行相同的作才能正常运行。在多个端口上配置 PFC 看门狗时,请确保所有端口都配置了相同类型的作(丢弃或转发)。默认情况下,所有端口都使用丢弃作。
在拥塞通知配置文件上启用 PFC 看门狗而不配置其他选项,将使用默认值启用 PFC 看门狗。默认情况下,轮询间隔为 100 毫秒,检测周期设置为 2(即两个轮询间隔,或 200 毫秒),恢复时间为 200 毫秒。
PFC 看门狗仅适用于 PFC 队列。要将队列指定为 PFC 队列,请使用带有队列号的 flow-control-queue 语句。例如:
set class-of-service congestion-notification-profile cnp output ieee-802.1 code-point 011 flow-control-queue 3 set class-of-service congestion-notification-profile cnp output ieee-802.1 code-point 100 flow-control-queue 4
使用 PFC 看门狗进行监控
您可以在系统日志中跟踪 PFC 看门狗事件。设备会使用时间戳在系统日志中记录 PFC 看门狗检测和恢复事件。您可以通过以下消息识别这些日志:
CDA PfcWd: PFC Watchdog detection enabled on ifd: et-0/0/16 Poll Interval:100ms Detection Period:200ms Recovery Interval:200ms— 在新端口上启用了 PFC 看门狗。CDA PfcWd: PFC Storm Detected! on ifd:et-0/0/16 Queue: 3 Priority: 3 BLOCKED for AutoRecovery Recovery Time: 200ms— PFC 看门狗检测到失速情况。CDA PfcWd: PFC Storm Recovered on Port ifd:et-0/0/16 Queue: 3 Priority: 3 UNBLOCKED after AutoRecovery Recovery Time: 200ms—PFC 看门狗恢复 PFC 队列,队列从 PFC 暂停风暴中恢复。
您还可以监控特定接口上的 PFC 看门狗统计信息。使用以下命令查看接口上 PFC 队列上已检测和恢复的 PFC 暂停风暴数,以及已丢弃的数据包数:
user@device> show interfaces interface extensive
...
Priority Flow Control Watchdog Statistics:
Detected Recovered LastPacketDropCount TotalPacketDropCount
Queue : 0 0 0 0 0
Queue : 1 0 0 0 0
Queue : 2 0 0 0 0
Queue : 3 0 0 0 0
Queue : 4 0 0 0 0
Queue : 5 0 0 0 0
Queue : 6 0 0 0 0
Queue : 7 0 0 0 0
...