Congestion Control for Large-Scale RDMA (DCQCN)
发布网友
发布时间:2024-10-24 17:26
我来回答
共1个回答
热心网友
时间:2024-10-29 00:26
针对大型RDMA中的拥塞控制问题,本文讨论了如何在ROCEv2协议下解决基于优先级的拥塞控制(PFC)的粗粒度机制带来的不公平性(Unfairness)和受害流(Victim Flow)问题。PFC机制在端口级别而非流级别进行,导致性能下降。为了解决这些问题,引入了DCQCN(数据中心量化拥塞通知)方案。在3层clos网络结构下,DCQCN证明能显著提升RoCEv2 RDMA的流量吞吐量和公平性。
在无损链路层L2上部署的RoCEv2需要使用PFC进行拥塞控制,但PFC的粗粒度性导致拥塞扩散,影响性能。具体地,当有多个发送器(sender)使用RDMA Write操作时,存在不公平性,其中某些发送器可能比其他发送器获得更高的吞吐量。此外,PAUSE帧的级联效应可能导致不在阻塞路径下的流(Victim Flow)受到影响。
为解决PFC带来的问题,DCQCN算法被提出。该算法不改变交换机的硬件结构,在NIC上实现,考虑CPU的开销,提供公平带宽分配的快速收敛、避免震荡、维持短队长以及确保高链路利用率。DCQCN分为三个部分:CP算法(Congestion Point)、NP算法(Notification Point)和RP算法(Reaction Point)。CP算法在交换机上运行,利用交换机上的RED功能根据队列长度按照概率分布给数据包打上ECN标签。NP算法在接收器NIC端,决定在收到ECN包后多久反馈一个CNP(Congestion Notification Packet)给发送器NIC。RP算法在发送器NIC端,包括降速、更新Alpha和升速三个部分。
实验结果证明,DCQCN很好地解决了PFC引入的不公平性和受害流问题。DCQCN的正确运行需要平衡两个参数:1. PFC不要过早触发,需确保ECN在PFC之前触发,以给发送器NIC反馈网络拥塞状态;2. PFC不要过晚触发,避免因缓冲区溢出导致的丢包。参数设置是为了确保即使在最坏情况下也能满足这两个平衡。