浅谈RDMA流控设计
pfc
概述
Priority Flow Control (PFC) IEEE 802.1Qbb applies pause functionality to specific classes of traffic on the Ethernet link. It provides an enhancement to the existing pause flow control mechanism as described in 802.1x.
When the receive buffer on a switch interface fills to a threshold, the switch transmits a pause frame to the sender (the connected peer) to temporarily stop the sender from transmitting more frames. The buffer threshold must be low enough so that the sender has time to stop transmitting frames and the receiver can accept the frames already on the wire before the buffer overflows.
PFC prevents buffer overflow by pausing the upstream sending entity when buffer occupancy exceeds a specified threshold.
pfc發生場景
什么場景容易觸發pfc?
- 比如100G網卡,插在Gen3X16插槽上,總共可用帶寬只有125G,但是200G的rdma網卡產生很多PCIe Internal Back Pressure事件,導致網卡buffer降的比較慢。
- 寫請求占用了一部分rdma網卡資源,導致網卡處理讀請求的速度變慢
DCQCN
網絡擁塞控制是一個很復雜的課題,這里只講一些基本的設計思路。
RoCE使用的擁塞控制算法是DCQCN,*《Congestion Control for Large-Scale RDMA Deployments》*這篇論文很詳細地描述了該算法。
這里先簡單的描述下這個算法:維護這個算法的節點是服務器,也就是流量的兩端,中間的交換機作為傳輸節點,通告是否擁塞。發送方叫Reaction Point,簡稱RP;接收方叫Notification Point,簡稱NP;中間交換機叫 Congestion Point,簡稱CP。發送方(RP)以最高速開始發送,沿途過程中如果有擁塞,會被標記ECN顯示擁塞,當這個被標記的報文轉發到接收方(NP)的時候,接收方(NP)會回應一個CNP報文,通知發送方(RP)。收到CNP報文的發送方(RP),就會開始降速。當發送方沒有收到CNP報文時,就開始又提速了。
參考鏈接
總結
以上是生活随笔為你收集整理的浅谈RDMA流控设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux信号以及core
- 下一篇: zookeeper简介以及C客户端用法