淺析RDMA網(wǎng)絡(luò)下MMU水線設(shè)置
【MMU水線】本文以RDMA網(wǎng)絡(luò)作為切入點(diǎn),結(jié)合實(shí)際部署經(jīng)驗(yàn),分析MMU水線設(shè)置的一些思路。
RDMA(遠(yuǎn)程直接數(shù)據(jù)存取),以其對(duì)業(yè)務(wù)帶來(lái)的高性能、低延時(shí)優(yōu)勢(shì),在數(shù)據(jù)中心尤其是AI、HPC、大數(shù)據(jù)等場(chǎng)景得到了廣泛應(yīng)用。為保障RDMA的穩(wěn)定運(yùn)行,基礎(chǔ)網(wǎng)絡(luò)需要提供端到端無(wú)損零丟包及超低延時(shí)的能力,這也催生了PFC、ECN等網(wǎng)絡(luò)流控技術(shù)在RDMA網(wǎng)絡(luò)中的部署。在RDMA網(wǎng)絡(luò)中,如何合理設(shè)置MMU(緩存管理單元)水線是確保RDMA網(wǎng)絡(luò)無(wú)損和低延時(shí)的關(guān)鍵。本文將以RDMA網(wǎng)絡(luò)作為切入點(diǎn),結(jié)合實(shí)際部署經(jīng)驗(yàn),分析MMU水線設(shè)置的一些思路。
什么是RDMA?
RDMA(Remote Direct Memory Access),通俗的說(shuō)就是遠(yuǎn)程的DMA技術(shù),是為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的。

▲ 傳統(tǒng)模式與RDMA模式工作機(jī)制對(duì)比
如上圖,在傳統(tǒng)模式下,兩臺(tái)服務(wù)器上的應(yīng)用之間傳輸數(shù)據(jù),過(guò)程是這樣的:
- 首先要把數(shù)據(jù)從應(yīng)用緩存拷貝到Kernel中的TCP協(xié)議棧緩存;
- 然后再拷貝到驅(qū)動(dòng)層;
- 最后拷貝到網(wǎng)卡緩存。
多次內(nèi)存拷貝需要CPU多次介入,導(dǎo)致處理延時(shí)大,達(dá)到數(shù)十微秒。同時(shí)整個(gè)過(guò)程中CPU過(guò)多參與,大量消耗CPU性能,影響正常的數(shù)據(jù)計(jì)算。
在RDMA 模式下,應(yīng)用數(shù)據(jù)可以繞過(guò)Kernel協(xié)議棧直接向網(wǎng)卡寫(xiě)數(shù)據(jù),帶來(lái)的顯著好處有:
- 處理延時(shí)由數(shù)十微秒降低到1微秒內(nèi);
- 整個(gè)過(guò)程幾乎不需要CPU參與,節(jié)省性能;
- 傳輸帶寬更高。
RDMA對(duì)于網(wǎng)絡(luò)的訴求
RDMA在高性能計(jì)算、大數(shù)據(jù)分析、IO高并發(fā)等場(chǎng)景中應(yīng)用越來(lái)越廣泛。諸如iSICI, SAN, Ceph, MPI, Hadoop, Spark, Tensorflow等應(yīng)用軟件都開(kāi)始部署RDMA技術(shù)。而對(duì)于支撐端到端傳輸?shù)幕A(chǔ)網(wǎng)絡(luò)而言,低延時(shí)(微秒級(jí))、無(wú)損(lossless)則是最重要的指標(biāo)。
低延時(shí)
網(wǎng)絡(luò)轉(zhuǎn)發(fā)延時(shí)主要產(chǎn)生在設(shè)備節(jié)點(diǎn)(這里忽略了光電傳輸延時(shí)和數(shù)據(jù)串行延時(shí)),設(shè)備轉(zhuǎn)發(fā)延時(shí)包括以下三部分:
- 存儲(chǔ)轉(zhuǎn)發(fā)延時(shí):芯片轉(zhuǎn)發(fā)流水線處理延遲,每個(gè)hop會(huì)產(chǎn)生1微秒左右的芯片處理延時(shí)(業(yè)界也有嘗試使用cut-through模式,單跳延遲可以降低到0.3微秒左右);
- Buffer緩存延時(shí):當(dāng)網(wǎng)絡(luò)擁塞時(shí),報(bào)文會(huì)被緩存起來(lái)等待轉(zhuǎn)發(fā)。這時(shí)Buffer越大,緩存報(bào)文的時(shí)間就越長(zhǎng),產(chǎn)生的時(shí)延也會(huì)更高。對(duì)于RDMA網(wǎng)絡(luò),Buffer并不是越大越好,需要合理選擇;
- 重傳延時(shí):在RDMA網(wǎng)絡(luò)里會(huì)有其他技術(shù)確保不丟包,這部分不做分析。
無(wú)損
RDMA在無(wú)損狀態(tài)下可以滿速率傳輸,而一旦發(fā)生丟包重傳,性能會(huì)急劇下降。在傳統(tǒng)網(wǎng)絡(luò)模式下,要想實(shí)現(xiàn)不丟包最主要的手段就是依賴大緩存,但如前文所說(shuō),這又與低延時(shí)矛盾了。因此,在RDMA網(wǎng)絡(luò)環(huán)境中,需要實(shí)現(xiàn)的是較小Buffer下的不丟包。
在這個(gè)限制條件下,RDMA實(shí)現(xiàn)無(wú)損主要是依賴基于PFC和ECN的網(wǎng)絡(luò)流控技術(shù)。
• RDMA無(wú)損網(wǎng)絡(luò)的關(guān)鍵技術(shù):PFC
PFC(Priority-based Flow Control),基于優(yōu)先級(jí)的流量控制。是一種基于隊(duì)列的反壓機(jī)制,通過(guò)發(fā)送Pause幀通知上游設(shè)備暫停發(fā)包來(lái)防止緩存溢出丟包。

▲ PFC工作機(jī)制示意圖
PFC允許單獨(dú)暫停和重啟其中任意一條虛擬通道,同時(shí)不影響其它虛擬通道的流量。如上圖所示,當(dāng)隊(duì)列7的Buffer消耗達(dá)到設(shè)置的PFC流控水線,會(huì)觸發(fā)PFC的反壓:
- 本端交換機(jī)觸發(fā)發(fā)出PFC Pause幀,并反向發(fā)送給上游設(shè)備;
- 收到Pause幀的上游設(shè)備會(huì)暫停該隊(duì)列報(bào)文的發(fā)送,同時(shí)將報(bào)文緩存在Buffer中;
- 如果上游設(shè)備的Buffer也達(dá)到閾值,會(huì)繼續(xù)觸發(fā)Pause幀向上游反壓;
- 最終通過(guò)降低該優(yōu)先級(jí)隊(duì)列的發(fā)送速率來(lái)避免數(shù)據(jù)丟包;
- 當(dāng)Buffer占用降低到恢復(fù)水線時(shí),會(huì)發(fā)送PFC解除報(bào)文。
• RDMA無(wú)損網(wǎng)絡(luò)的關(guān)鍵技術(shù):ECN
ECN(Explicit Congestion Notification):顯示擁塞通知。ECN是一個(gè)非常古老的技術(shù),只是之前使用的并不普遍,該協(xié)議機(jī)制作用于主機(jī)與主機(jī)之間。
ECN是報(bào)文在網(wǎng)絡(luò)設(shè)備出口(Egress port)發(fā)生擁塞并觸發(fā)ECN水線時(shí),使用IP報(bào)文頭的ECN字段標(biāo)記數(shù)據(jù)包,表明該報(bào)文遇到網(wǎng)絡(luò)擁塞。一旦接收服務(wù)器發(fā)現(xiàn)報(bào)文的ECN被標(biāo)記,立刻產(chǎn)生CNP(擁塞通知報(bào)文),并將它發(fā)送給源端服務(wù)器,CNP消息里包含了導(dǎo)致?lián)砣腇low信息。源端服務(wù)器收到后,通過(guò)降低相應(yīng)流發(fā)送速率,緩解網(wǎng)絡(luò)設(shè)備擁塞,從而避免發(fā)生丟包。
通過(guò)之前的描述可以了解到,PFC和ECN之所以可以實(shí)現(xiàn)網(wǎng)絡(luò)端到端的零丟包,是通過(guò)設(shè)置不同的水線來(lái)實(shí)現(xiàn)的。對(duì)這些水線的合理設(shè)置,就是針對(duì)交換機(jī)MMU的精細(xì)化管理,通俗講就是對(duì)交換機(jī)Buffer的管理。接下來(lái)我們具體分析下PFC的水線設(shè)置。
PFC水線設(shè)置
交換芯片都有固定的Pipeline(轉(zhuǎn)發(fā)流水線), Buffer管理處于入芯片流程和出芯片流程的中間位置。報(bào)文處于在這個(gè)位置上時(shí),已經(jīng)知道了該報(bào)文的入口和出口信息,因此邏輯上就可以分成入方向和出方向分別對(duì)緩存進(jìn)行管理。
PFC水線是基于入方向緩存管理進(jìn)行觸發(fā)的。芯片在入口方向提供了8個(gè)隊(duì)列,我們可以將不同優(yōu)先級(jí)的業(yè)務(wù)報(bào)文映射到不同的隊(duì)列上,從而實(shí)現(xiàn)對(duì)不同優(yōu)先級(jí)的報(bào)文提供不同的Buffer分配方案。

▲ 隊(duì)列Buffer的組成部分
具體到每個(gè)隊(duì)列,其Buffer分配根據(jù)使用場(chǎng)景設(shè)計(jì)為3部分:保證緩存,共享緩存,Headroom。
- 保證緩存:每個(gè)隊(duì)列的專用緩存,確保每個(gè)隊(duì)列均有一定緩存以保證基本轉(zhuǎn)發(fā);
- 共享緩存:流量突發(fā)時(shí)可以申請(qǐng)使用的緩存,所有隊(duì)列共享;
- Headroom:在觸發(fā)PFC水線后,到服務(wù)器響應(yīng)降速前,還可以繼續(xù)使用的緩存。
• 保證緩存設(shè)置
保證緩存是一個(gè)靜態(tài)水線(固定的、獨(dú)享的)。靜態(tài)水線的利用率非常低,資源消耗卻非常大。我們?cè)趯?shí)際部署時(shí)建議不分配保證緩存,以減少這部分的緩存消耗。這樣,入方向報(bào)文直接使用共享緩存空間,可提高Buffer的利用率。
• 共享緩存設(shè)置
對(duì)于共享緩存的設(shè)置,需要采用更為靈活的動(dòng)態(tài)水線。動(dòng)態(tài)水線能根據(jù)當(dāng)前空閑的Buffer資源,以及當(dāng)前隊(duì)列已使用的Buffer資源數(shù)量來(lái)決定能否繼續(xù)申請(qǐng)到資源。由于系統(tǒng)中空閑共享Buffer資源與已使用的Buffer資源都是時(shí)刻變化的,因此閾值也處于不斷變動(dòng)中。相對(duì)于靜態(tài)水線,動(dòng)態(tài)水線能更靈活、有效的利用Buffer及避免造成不必要的浪費(fèi)。
銳捷網(wǎng)絡(luò)交換機(jī)支持基于動(dòng)態(tài)的方式進(jìn)行Buffer資源的分配,對(duì)共享緩存的設(shè)置分為11檔,動(dòng)態(tài)水線alpha值=隊(duì)列可申請(qǐng)緩存量/剩余共享緩存量。隊(duì)列的α值越大,其在共享緩存中可使用的百分?jǐn)?shù)占比也就越高。

▲共享水線α值與可使用率對(duì)應(yīng)關(guān)系
我們不妨分析一下:
隊(duì)列的α值設(shè)置越小,其最大可申請(qǐng)的共享緩存占比就越小。當(dāng)端口擁塞時(shí)就會(huì)越早觸發(fā)PFC流控,PFC流控生效后隊(duì)列降速,可以很好地確保網(wǎng)絡(luò)不丟包。
但從性能的角度看,過(guò)早觸發(fā)PFC流控,會(huì)導(dǎo)致RDMA網(wǎng)絡(luò)吞吐下降。因此我們?cè)贛MU水線設(shè)置時(shí)需要選取一個(gè)平衡值。
PFC水線到底設(shè)置多少,是一個(gè)非常復(fù)雜的問(wèn)題,理論上不存在一個(gè)固定的值。實(shí)際部署時(shí),需要我們具體分析業(yè)務(wù)模型,并搭建測(cè)試環(huán)境進(jìn)行水線調(diào)優(yōu),找到匹配業(yè)務(wù)的最合適的水線。
• Headroom設(shè)置
Headroom:顧名思義,就是頭部空間的意思,是在PFC觸發(fā)后,到PFC真正生效這一段時(shí)間,用來(lái)緩存隊(duì)列報(bào)文的。Headroom設(shè)置多大合適?這里與4個(gè)因素有關(guān):
- PG檢測(cè)到觸發(fā)XOFF水線,到構(gòu)造PFC幀發(fā)出的時(shí)間(這里主要跟配置的檢測(cè)精度以及平均隊(duì)列算法相關(guān),固定配置是固定值)
- 上游收到PFC Pause幀,到停止隊(duì)列轉(zhuǎn)發(fā)的時(shí)間(主要跟芯片處理性能有關(guān)系,交換芯片實(shí)際上是固定值)
- PFC Pause幀在鏈路上的傳輸時(shí)間(跟AOC線纜/光纖距離成正比)
- 隊(duì)列暫停發(fā)送后鏈路中報(bào)文的傳輸時(shí)間(跟AOC線纜/光纖距離成正比)
因此Headroom所需要的緩存大小,我們可以根據(jù)組網(wǎng)的架構(gòu),以及流量模型測(cè)算得出。以100米光纖線 + 100G光模塊,緩存64字節(jié)小包,計(jì)算出所需的Headroom大小是408個(gè)cell(cell是緩存管理的最小單元,一個(gè)報(bào)文會(huì)占用1個(gè)或者多個(gè)cell),實(shí)際測(cè)試數(shù)據(jù)也吻合。當(dāng)然,考慮一定的冗余性,Headroom設(shè)置建議比理論值稍大。
RDMA網(wǎng)絡(luò)實(shí)踐
銳捷網(wǎng)絡(luò)在研發(fā)中心搭建了模擬真實(shí)業(yè)務(wù)的RDMA網(wǎng)絡(luò),架構(gòu)如下:

▲銳捷網(wǎng)絡(luò)RDMA組網(wǎng)架構(gòu)
- 組網(wǎng)模型:大核心三級(jí)組網(wǎng)架構(gòu),核心采用高密100G線卡;
- POD內(nèi):Spine采用提供64個(gè)100G接口的 BOX設(shè)備,Leaf采用提供48個(gè)25G接口+8個(gè)100G接口的BOX設(shè)備;
- Leaf作為服務(wù)器網(wǎng)關(guān),支持和服務(wù)器間基于PFC流控(識(shí)別報(bào)文的DSCP并進(jìn)行PG映射),同時(shí)支持擁塞ECN標(biāo)記;
- RDMA僅運(yùn)行于POD內(nèi)部,不存在跨POD的RDMA流量,因此核心無(wú)需感知RDMA流量;
- 為了避免擁塞丟包,需要在Leaf與Spine之間部署PFC流控技術(shù),同時(shí)Spine設(shè)備也需要支持基于擁塞的ECN標(biāo)記;
- Leaf和Spine設(shè)備支持PFC流控幀統(tǒng)計(jì)、ECN標(biāo)記統(tǒng)計(jì)、擁塞丟包統(tǒng)計(jì)、基于隊(duì)列的擁塞統(tǒng)計(jì)等,并支持將統(tǒng)計(jì)信息通過(guò)gRPC同步到遠(yuǎn)端gRPC服務(wù)器。
寫(xiě)在最后
銳捷網(wǎng)絡(luò)在研發(fā)中心搭建了模擬真實(shí)業(yè)務(wù)的浸泡組網(wǎng)環(huán)境(包括RG-S6510、RG-S6520、RG-N18000-X系列25G/100G網(wǎng)絡(luò)設(shè)備、大型測(cè)試儀、25G服務(wù)器)。在疊加了多種業(yè)務(wù)模型,并進(jìn)行了長(zhǎng)時(shí)間浸泡測(cè)試后,我們對(duì)于RDMA網(wǎng)絡(luò)的MMU水線設(shè)置已有一些推薦的經(jīng)驗(yàn)值。此外,在RDMA網(wǎng)絡(luò)中,還存在一些部署難點(diǎn),比如多級(jí)網(wǎng)絡(luò)中 PFC風(fēng)暴、死鎖問(wèn)題、ECN水線設(shè)計(jì)復(fù)雜問(wèn)題等。對(duì)于這些問(wèn)題,銳捷網(wǎng)絡(luò)也有一些研究和積累,期待與大家共同探討。
本期作者:顏曉波
銳捷網(wǎng)絡(luò)互聯(lián)網(wǎng)系統(tǒng)部行業(yè)咨詢
往期精彩回顧
●【第一期】淺談物聯(lián)網(wǎng)技術(shù)之通信協(xié)議的紛爭(zhēng)
●【第二期】如何通過(guò)網(wǎng)絡(luò)遙測(cè)(Network Telemetry)技術(shù)實(shí)現(xiàn)精細(xì)化網(wǎng)絡(luò)運(yùn)維?
●【第三期】暢談數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維自動(dòng)化
●【第四期】基于Rogue AP反制的無(wú)線安全技術(shù)探討
●【第六期】如何實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)“去”堆疊
相關(guān)推薦:
相關(guān)標(biāo)簽:
點(diǎn)贊
相關(guān)產(chǎn)品
-
數(shù)據(jù)中心網(wǎng)絡(luò)高密框式核心交換機(jī),4業(yè)務(wù)插槽,支持10G/40G/100G/200G/400G線卡,RG-N18006-X
-
數(shù)據(jù)中心100G高密接入交換機(jī),100G上行(向下兼容40G),RG-S6520-64CQ
-
48口25G數(shù)據(jù)中心盒式接入交換機(jī),100G上行(支持向下兼容),RG-S6510-48VS8CQ
-
數(shù)據(jù)中心網(wǎng)絡(luò)高密框式核心交換機(jī),16業(yè)務(wù)插槽,支持10G/40G/100G/200G線卡,RG-N18018-X
-
數(shù)據(jù)中心網(wǎng)絡(luò)高密框式核心交換機(jī),8業(yè)務(wù)插槽,支持10G/40G/100G/200G/400G線卡,RG-N18010-X
客戶評(píng)論
我要評(píng)論
您的姓名
您的手機(jī)號(hào)*
您的郵箱
公司名稱
更多技術(shù)博文
-
解密DeepSeek-V3推理網(wǎng)絡(luò):MoE架構(gòu)如何重構(gòu)低時(shí)延、高吞吐需求?DeepSeek-V3發(fā)布推動(dòng)分布式推理網(wǎng)絡(luò)架構(gòu)升級(jí),MoE模型引入大規(guī)模專家并行通信,推理流量特征顯著變化,Decode階段對(duì)網(wǎng)絡(luò)時(shí)度敏感。網(wǎng)絡(luò)需保障低時(shí)延與高吞吐,通過(guò)端網(wǎng)協(xié)同負(fù)載均衡與擁塞控制技術(shù)優(yōu)化性能。高效運(yùn)維實(shí)現(xiàn)故障快速定位與業(yè)務(wù)高可用,單軌雙平面與Shuffle多平面組網(wǎng)方案在低成本下滿足高性能推理需求,為大規(guī)模MoE模型部署提供核心網(wǎng)絡(luò)支撐。
-
#交換機(jī)
-
-
高密場(chǎng)景無(wú)線網(wǎng)絡(luò)新解法:銳捷Wi-Fi 7 AP 與 龍伯透鏡天線正式成團(tuán)銳捷網(wǎng)絡(luò)在中國(guó)國(guó)際大學(xué)生創(chuàng)新大賽(2025)總決賽推出旗艦Wi-Fi 7無(wú)線AP RG-AP9520-RDX及龍伯透鏡天線組合,針對(duì)高密場(chǎng)景實(shí)現(xiàn)零卡頓、低時(shí)延和高并發(fā)網(wǎng)絡(luò)體驗(yàn)。該方案通過(guò)多檔賦形天線和智能無(wú)線技術(shù),有效解決干擾與覆蓋問(wèn)題,適用于場(chǎng)館、辦公等高密度環(huán)境,提供穩(wěn)定可靠的無(wú)線網(wǎng)絡(luò)解決方案。
-
#無(wú)線網(wǎng)
-
#Wi-Fi 7
-
#無(wú)線
-
#放裝式AP
-
-
打造“一云多用”的算力服務(wù)平臺(tái):銳捷高職教一朵云2.0解決方案發(fā)布銳捷高職教一朵云2.0解決方案幫助學(xué)校構(gòu)建統(tǒng)一云桌面算力平臺(tái),支持教學(xué)、實(shí)訓(xùn)、科研和AI等全場(chǎng)景應(yīng)用,實(shí)現(xiàn)一云多用。通過(guò)資源池化和智能調(diào)度,提升資源利用效率,降低運(yùn)維成本,覆蓋公共機(jī)房、專業(yè)實(shí)訓(xùn)、教師辦公及AI教學(xué)等多場(chǎng)景需求,助力教育信息化從分散走向融合,推動(dòng)規(guī)模化與個(gè)性化培養(yǎng)結(jié)合。
-
#云桌面
-
#高職教
-
-
醫(yī)院無(wú)線升級(jí)必看:“全院零漫游”六大謎題全解析銳捷網(wǎng)絡(luò)的全院零漫游方案是新一代醫(yī)療無(wú)線解決方案,專為智慧醫(yī)院設(shè)計(jì),通過(guò)零漫游主機(jī)和天線入室技術(shù)實(shí)現(xiàn)全院覆蓋和移動(dòng)零漫游體驗(yàn)。方案支持業(yè)務(wù)擴(kuò)展全適配,優(yōu)化運(yùn)維管理,確保內(nèi)外網(wǎng)物理隔離安全,并便捷部署物聯(lián)網(wǎng)應(yīng)用,幫助醫(yī)院提升網(wǎng)絡(luò)性能,支持舊設(shè)備利舊升級(jí),降低成本。
-
#醫(yī)療
-
#醫(yī)院網(wǎng)絡(luò)
-
#無(wú)線
-
盛宴內(nèi)文banner.jpg)