衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RDMA網絡的MMU水線設置步驟與應用實例

牽手一起夢 ? 來源:網絡整理 ? 作者:佚名 ? 2020-01-02 16:15 ? 次閱讀

RDMA(遠程直接數據存取),以其對業務帶來的高性能、低延時優勢,在數據中心尤其是AI、HPC、大數據等場景得到了廣泛應用。為保障RDMA的穩定運行,基礎網絡需要提供端到端無損零丟包及超低延時的能力,這也催生了PFC、ECN等網絡流控技術在RDMA網絡中的部署。在RDMA網絡中,如何合理設置MMU(緩存管理單元)水線是保證RDMA網絡無損和低延時的關鍵。本文將以RDMA網絡作為切入點,結合實際部署經驗,分析MMU水線設置的一些思路。

什么是RDMA?

RDMA(Remote Direct Memory Access),通俗的說就是遠程的DMA技術,是為了解決網絡傳輸中服務器端數據處理的延遲而產生的。

▲ 傳統模式與RDMA模式工作機制對比

如上圖,在傳統模式下,兩臺服務器上的應用之間傳輸數據,過程是這樣的:

● 首先要把數據從應用緩存拷貝到Kernel中的TCP協議棧緩存;

● 然后再拷貝到驅動層;

● 最后拷貝到網卡緩存。

多次內存拷貝需要CPU多次介入,導致處理延時大,達到數十微秒。同時整個過程中CPU過多參與,大量消耗CPU性能,影響正常的數據計算。

在RDMA 模式下,應用數據可以繞過Kernel協議棧直接向網卡寫數據,帶來的顯著好處有:

● 處理延時由數十微秒降低到1微秒內;

● 整個過程幾乎不需要CPU參與,節省性能;

● 傳輸帶寬更高。

RDMA對于網絡的訴求

RDMA在高性能計算、大數據分析、IO高并發等場景中應用越來越廣泛。諸如iSICI, SAN, Ceph, MPI, Hadoop, Spark, Tensorflow等應用軟件都開始部署RDMA技術。而對于支撐端到端傳輸的基礎網絡而言,低延時(微秒級)、無損(lossless)則是最重要的指標。

低延時

網絡轉發延時主要產生在設備節點(這里忽略了光電傳輸延時和數據串行延時),設備轉發延時包括以下三部分:

● 存儲轉發延時:芯片轉發流水線處理延遲,每個hop會產生1微秒左右的芯片處理延時(業界也有嘗試使用cut-through模式,單跳延遲可以降低到0.3微秒左右);

● Buffer緩存延時:當網絡擁塞時,報文會被緩存起來等待轉發。這時Buffer越大,緩存報文的時間就越長,產生的時延也會更高。對于RDMA網絡,Buffer并不是越大越好,需要合理選擇;

● 重傳延時:在RDMA網絡里會有其他技術保證不丟包,這部分不做分析。

無損

RDMA在無損狀態下可以滿速率傳輸,而一旦發生丟包重傳,性能會急劇下降。在傳統網絡模式下,要想實現不丟包最主要的手段就是依賴大緩存,但如前文所說,這又與低延時矛盾了。因此,在RDMA網絡環境中,需要實現的是較小Buffer下的不丟包。

在這個限制條件下,RDMA實現無損主要是依賴基于PFC和ECN的網絡流控技術。

PFC

PFC(Priority-based Flow Control),基于優先級的流量控制。是一種基于隊列的反壓機制,通過發送Pause幀通知上游設備暫停發包來防止緩存溢出丟包。

▲ PFC工作機制示意圖

PFC允許單獨暫停和重啟其中任意一條虛擬通道,同時不影響其它虛擬通道的流量。如上圖所示,當隊列7的Buffer消耗達到設置的PFC流控水線,會觸發PFC的反壓:

● 本端交換機觸發發出PFC Pause幀,并反向發送給上游設備;

● 收到Pause幀的上游設備會暫停該隊列報文的發送,同時將報文緩存在Buffer中;

● 如果上游設備的Buffer也達到閾值,會繼續觸發Pause幀向上游反壓;

● 最終通過降低該優先級隊列的發送速率來避免數據丟包;

● 當Buffer占用降低到恢復水線時,會發送PFC解除報文。

RDMA無損網絡的關鍵技術:ECN

ECN(Explicit Congestion Notification):顯示擁塞通知。ECN是一個非常古老的技術,只是之前使用的并不普遍,該協議機制作用于主機與主機之間。

ECN是報文在網絡設備出口(Egress port)發生擁塞并觸發ECN水線時,使用IP報文頭的ECN字段標記數據包,表明該報文遇到網絡擁塞。一旦接收服務器發現報文的ECN被標記,立刻產生CNP(擁塞通知報文),并將它發送給源端服務器,CNP消息里包含了導致擁塞的Flow信息。源端服務器收到后,通過降低相應流發送速率,緩解網絡設備擁塞,從而避免發生丟包。

通過之前的描述可以了解到,PFC和ECN之所以可以實現網絡端到端的零丟包,是通過設置不同的水線來實現的。對這些水線的合理設置,就是針對交換機MMU的精細化管理,通俗講就是對交換機Buffer的管理。接下來我們具體分析下PFC的水線設置。

PFC水線設置

交換芯片都有固定的Pipeline(轉發流水線), Buffer管理處于入芯片流程和出芯片流程的中間位置。報文處于在這個位置上時,已經知道了該報文的入口和出口信息,因此邏輯上就可以分成入方向和出方向分別對緩存進行管理。

PFC水線是基于入方向緩存管理進行觸發的。芯片在入口方向提供了8個隊列,我們可以將不同優先級的業務報文映射到不同的隊列上,從而實現對不同優先級的報文提供不同的Buffer分配方案。

▲ 隊列Buffer的組成部分

具體到每個隊列,其Buffer分配根據使用場景設計為3部分:保證緩存,共享緩存,Headroom。

● 保證緩存:每個隊列的專用緩存,確保每個隊列均有一定緩存以保證基本轉發;

● 共享緩存:流量突發時可以申請使用的緩存,所有隊列共享;

● Headroom:在觸發PFC水線后,到服務器響應降速前,還可以繼續使用的緩存。

保證緩存設置

保證緩存是一個靜態水線(固定的、獨享的)。靜態水線的利用率非常低,資源消耗卻非常大。我們在實際部署時建議不分配保證緩存,以減少這部分的緩存消耗。這樣,入方向報文直接使用共享緩存空間,可提高Buffer的利用率。

共享緩存設置

對于共享緩存的設置,需要采用更為靈活的動態水線。動態水線能根據當前空閑的Buffer資源,以及當前隊列已使用的Buffer資源數量來決定能否繼續申請到資源。由于系統中空閑共享Buffer資源與已使用的Buffer資源都是時刻變化的,因此閾值也處于不斷變動中。相對于靜態水線,動態水線能更靈活、有效的利用Buffer及避免造成不必要的浪費。

銳捷網絡交換機支持基于動態的方式進行Buffer資源的分配,對共享緩存的設置分為11檔,動態水線alpha值=隊列可申請緩存量/剩余共享緩存量。隊列的α值越大,其在共享緩存中可使用的百分數占比也就越高。

▲共享水線α值與可使用率對應關系

我們不妨分析一下:

隊列的α值設置越小,其最大可申請的共享緩存占比就越小。當端口擁塞時就會越早觸發PFC流控,PFC流控生效后隊列降速,可以很好地保證網絡不丟包。

但從性能的角度看,過早觸發PFC流控,會導致RDMA網絡吞吐下降。因此我們在MMU水線設置時需要選取一個平衡值。

PFC水線到底設置多少,是一個非常復雜的問題,理論上不存在一個固定的值。實際部署時,需要我們具體分析業務模型,并搭建測試環境進行水線調優,找到匹配業務的最佳水線。

Headroom設置

Headroom:顧名思義,就是頭部空間的意思,是在PFC觸發后,到PFC真正生效這一段時間,用來緩存隊列報文的。Headroom設置多大合適?這里與4個因素有關:

● PG檢測到觸發XOFF水線,到構造PFC幀發出的時間(這里主要跟配置的檢測精度以及平均隊列算法相關,固定配置是固定值)

● 上游收到PFC Pause幀,到停止隊列轉發的時間(主要跟芯片處理性能有關系,交換芯片實際上是固定值)

● PFC Pause幀在鏈路上的傳輸時間(跟AOC線纜/光纖距離成正比)

● 隊列暫停發送后鏈路中報文的傳輸時間(跟AOC線纜/光纖距離成正比)

因此Headroom所需要的緩存大小,我們可以根據組網的架構,以及流量模型測算得出。以100米光纖線 + 100G光模塊,緩存64字節小包,計算出所需的Headroom大小是408個cell(cell是緩存管理的最小單元,一個報文會占用1個或者多個cell),實際測試數據也吻合。當然,考慮一定的冗余性,Headroom設置建議比理論值稍大。

RDMA網絡實踐

銳捷網絡在研發中心搭建了模擬真實業務的RDMA網絡,架構如下:

▲銳捷網絡RDMA組網架構

● 組網模型:大核心三級組網架構,核心采用高密100G線卡;

● POD內:Spine采用提供64個100G接口的 BOX設備,Leaf采用提供48個25G接口+8個100G接口的BOX設備;

● Leaf作為服務器網關,支持和服務器間基于PFC流控(識別報文的DSCP并進行PG映射),同時支持擁塞ECN標記;

● RDMA僅運行于POD內部,不存在跨POD的RDMA流量,因此核心無需感知RDMA流量;

● 為了避免擁塞丟包,需要在Leaf與Spine之間部署PFC流控技術,同時Spine設備也需要支持基于擁塞的ECN標記;

● Leaf和Spine設備支持PFC流控幀統計、ECN標記統計、擁塞丟包統計、基于隊列的擁塞統計等,并支持將統計信息通過gRPC同步到遠端gRPC服務器。

寫在最后

銳捷網絡在研發中心同樣搭建了模擬真實業務的浸泡組網環境(包括RG-S6510、RG-S6520、RG-N18000-X系列25G/100G網絡設備、大型測試儀、25G服務器)。在疊加了多種業務模型,并進行了長時間浸泡測試后,我們對于RDMA網絡的MMU水線設置已有一些推薦的經驗值。此外,在RDMA網絡中,還存在一些部署難點,比如多級網絡中 PFC風暴、死鎖問題、ECN水線設計復雜問題等。對于這些問題,銳捷網絡也有一些研究和積累,期待與大家共同探討。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9308

    瀏覽量

    86071
  • AI
    AI
    +關注

    關注

    87

    文章

    31536

    瀏覽量

    270353
收藏 人收藏

    評論

    相關推薦

    深入了解RDMA技術

    Explorer,專注于高性能網絡、虛擬化網絡及網卡的測試方案研究。熟悉dpdk,rdma,sdn等技術的應用與解決方案。
    的頭像 發表于 12-26 09:23 ?2033次閱讀
    深入了解<b class='flag-5'>RDMA</b>技術

    RDMA RNIC虛擬化方案

    遠程直接內存訪問(Remote Direct Memory Access,RDMA)技術允許應用程序繞過操作系統內核,以零拷貝的方式和遠程計算機進行網絡通信,具有低延遲和高帶寬的優勢。RDMA協議
    的頭像 發表于 01-23 17:23 ?2197次閱讀
    <b class='flag-5'>RDMA</b> RNIC虛擬化方案

    基于RDMA技術的Spark Shuffle性能提升

    一篇文章教你使用RDMA技術提升Spark的Shuffle性能
    發表于 10-28 16:46

    樹莓派3設置有線網絡步驟_樹莓派3利用WinScp上傳文件步驟教程

    本文主要講解關于樹莓派3設置有線網絡步驟教程以及利用WinScp上傳文件的步驟教程,詳細的步驟接下來跟隨小編一起了解一下。
    發表于 12-08 16:39 ?7495次閱讀
    樹莓派3<b class='flag-5'>設置</b>有線<b class='flag-5'>網絡</b><b class='flag-5'>步驟</b>_樹莓派3利用WinScp上傳文件<b class='flag-5'>步驟</b>教程

    技術盛宴 | 淺析RDMA網絡MMU水線設置

    水線是保證RDMA網絡無損和低延時的關鍵。本文將以RDMA網絡作為切入點,結合實際部署經驗,分析MMU
    發表于 11-22 12:44 ?1196次閱讀

    RDMA網絡中如何合理設置MMU水線,解決服務器端數據延遲問題

    RDMA(Remote Direct Memory Access),通俗的說就是遠程的DMA技術,是為了解決網絡傳輸中服務器端數據處理的延遲而產生的。
    的頭像 發表于 01-28 17:40 ?3685次閱讀

    RDMA是什么?RDMA網卡有什么作用?

    近幾年RDMA這個詞在行業內炒的如火如荼,但是很多人表示RDMA具體是什么?主要應用在哪些領域,有什么作用?RDMA都有哪幾種協議?今天小編就這幾個問題給大家科普一下。
    發表于 12-27 17:15 ?1.2w次閱讀

    RDMA技術有助于實現網絡和設備的性能提升

    RDMA作為一種遠程直接內存訪問技術,可以使數據通過應用程序繞過CPU直達網卡,實現低延遲、低負載、高效率的數據傳輸。從而提升網絡和設備性能。
    發表于 03-28 15:03 ?645次閱讀

    NVIDIA ConnectX智能網卡驅動RDMA通訊技術在分布式存儲的應用

    NVIDIA ConnectX 智能網卡及開源 UCX 框架幫助網易高性能 RDMA 網絡通訊功能實現更優表現,助力網易通過 Curve 開源項目為 Apache BRPC 自主實現高性能的 RDMA
    的頭像 發表于 11-03 09:48 ?1128次閱讀

    RDMA技術簡介 RDMA的控制通路和數據通路方案

    RDMA 技術基于傳統以太網的網絡概念,但與以太網網絡中的同類技術存在差異。關鍵區 別在于,RDMA 提供了一種消息服務,應用程序可以使用該服務直接訪問遠程計算機上的虛擬內存。
    發表于 04-10 09:59 ?1959次閱讀

    什么是RDMA?什么是RoCE網絡技術?

    在數據為王的時代,人們對網絡的要求更加嚴苛。然而傳統的TCP / IP以太網連接占用了大量的CPU資源,并且需要額外的數據處理,已無法再滿足當前更快、更高效和可擴展性的網絡需求。在這種情況下,RoCE(RDMA over Con
    的頭像 發表于 07-24 17:40 ?7273次閱讀
    什么是<b class='flag-5'>RDMA</b>?什么是RoCE<b class='flag-5'>網絡</b>技術?

    無線路由設置步驟

    電子發燒友網站提供《無線路由設置步驟.pdf》資料免費下載
    發表于 10-20 09:54 ?0次下載
    無線路由<b class='flag-5'>設置</b><b class='flag-5'>步驟</b>

    rdma網絡是什么?RDMA網絡有什么應用場景?

    RDMA(Remote Direct Memory Access)網絡是一種技術,它通過網絡直接在計算機之間傳輸數據,而無需雙方操作系統的介入。這種技術可以允許高吞吐、低延遲的網絡通信
    的頭像 發表于 12-22 09:30 ?1244次閱讀

    Turbo模式1.0設置步驟

    電子發燒友網站提供《Turbo模式1.0設置步驟.pdf》資料免費下載
    發表于 10-15 10:11 ?0次下載
    Turbo模式1.0<b class='flag-5'>設置</b><b class='flag-5'>步驟</b>

    以太網RDMA RoCE的技術局限

    上期我們講到了RDMA的WHY,WHAT & HOW(AI網絡背景下RDMA的Why,What & How),這一期我們來談一談RDMA的不足。
    的頭像 發表于 10-22 10:02 ?589次閱讀
    以太網<b class='flag-5'>RDMA</b> RoCE的技術局限
    百家乐官网单机破解版| 金殿百家乐官网的玩法技巧和规则| 百家乐官网游戏免费试| 百家乐娱乐城信息| 威尼斯人娱乐城信誉最好| 皇冠网站| 澳门百家乐官网博牌| 百家乐冯式打法| 博E百百家乐娱乐城| 大发888注册送58| 百家乐官网娱乐城注册| 百家乐视频大厅| 威尼斯人娱乐网网上百家乐| 网上现金游戏| 贝博百家乐官网的玩法技巧和规则 | 百家乐官网游戏网上投注| 上市百家乐.评论| 卡迪拉娱乐城开户| 澳门百家乐官网赌技巧| 土豪百家乐的玩法技巧和规则| 永城市| 百家乐里和的作用| 德州扑克 术语| 百家乐官网桌面| 老虎百家乐的玩法技巧和规则| 吐鲁番市| 易胜博百家乐下载| 顶级赌场 官方直营网| 百家乐官网双龙出海| 去澳门百家乐的玩法技巧和规则| 古丈县| 属兔做生意门面房朝向| 六合彩马报| 百家乐官网筹码套装100片| 大发888扑克场下载| 百家乐官网园sun811| 金字塔百家乐的玩法技巧和规则 | 百家乐官网英皇娱乐城| JJ百家乐的玩法技巧和规则| 澳门赌百家乐官网能赢钱吗| 百家乐视频画面|