<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文掌握智算網(wǎng)絡(luò)負載均衡技術(shù)

          共 4814字,需瀏覽 10分鐘

           ·

          2024-07-11 08:00


          隨著AI技術(shù)的發(fā)展,各種新型智能應(yīng)用爆發(fā),以AI為特征的智能算力發(fā)展速度遠超通用算力,據(jù)IDC預(yù)測,未來5年,我國智能算力規(guī)模的年復(fù)合增長率將達50%以上,數(shù)據(jù)中心的算力時代已經(jīng)到來。層出不求的需求也對數(shù)據(jù)中心網(wǎng)絡(luò)或智算網(wǎng)絡(luò)提出了更高的要求,需要更大的規(guī)模、更大的帶寬、更低的時延和更可靠的網(wǎng)絡(luò)。

          數(shù)據(jù)中心網(wǎng)絡(luò)或智算網(wǎng)絡(luò)的拓撲結(jié)構(gòu)相對規(guī)整(如Spine-Leaf架構(gòu)),所以在選路方面相對簡單。但由于數(shù)據(jù)中心網(wǎng)絡(luò)的服務(wù)器之間往往都存在多條等價并行路徑(比如在Fat tree網(wǎng)絡(luò)中可能存在多達幾十條),因此,如何在多條并行路徑之間進行負載均衡路由,是數(shù)據(jù)中心網(wǎng)絡(luò)路由設(shè)計的關(guān)鍵。

          傳統(tǒng)負載均衡用的比較多的是等價成本多路徑(ECMP),ECMP下一跳的路徑是通過對數(shù)據(jù)包字段進行哈希計算并對可用路徑數(shù)取模來選擇的,來自一個流的數(shù)據(jù)包總是映射到同一路徑,因此,這些數(shù)據(jù)包將按發(fā)送順序交付,也就是通常的基于流的負載均衡(Flow-based)。然而,研究表明,在流量高度傾斜時,ECMP無法平均分配負載到不同的路徑,如大象流場景。特別是對于當前HPCAI場景,普遍使用RDMA并且是大帶寬場景,這個時候傳統(tǒng)ECMP很容易導(dǎo)致鏈路Hash不均,進而導(dǎo)致某一個鏈路擁塞。在AI/ML的應(yīng)用中,GPU或其他類型的AI/ML計算單元之間他們有著非常簡單的通訊關(guān)系(流的數(shù)量非常少),并且由于他們有著極高的計算能力,導(dǎo)致一對通訊單元間的數(shù)據(jù)吞吐極高(單個流很大,所需的網(wǎng)絡(luò)帶寬極大),這就導(dǎo)致在這樣的應(yīng)用中存在極端的負載分擔不均衡,而且這種不均衡一旦引發(fā)網(wǎng)絡(luò)丟包,就會對整體AI/ML的任務(wù)完成時間帶來顯著的負面影響。

          網(wǎng)絡(luò)中的擁塞整體一般有兩種,一種是在端側(cè)的擁塞,常見于多打一的Incast場景,這種情況通常用各種擁塞控制算法來使對應(yīng)的發(fā)送端減速來解決。另一種是矩陣擁塞,即網(wǎng)絡(luò)因為Hash不均導(dǎo)致的擁塞。這里重點討論矩陣擁塞的解決方案。解決矩陣擁塞主要有以下幾種方式:

          • 胖樹架構(gòu)設(shè)計:增加匯聚鏈路帶寬,典型的就是采用Fat tree網(wǎng)絡(luò)架構(gòu)設(shè)計,從輸入到輸出1:1的收斂比設(shè)計;

          • VoQ(Virtual Output Queueing)技術(shù):是一種網(wǎng)絡(luò)擁塞管理技術(shù),用于防止HoL阻塞的技術(shù),在傳統(tǒng)的輸入緩沖區(qū)排隊方案中,數(shù)據(jù)包先進入輸入緩沖區(qū),然后根據(jù)目的端口的可用性從中選擇出隊。然而,當多個數(shù)據(jù)包的目的端口相同時,輸入緩沖區(qū)排隊會導(dǎo)致阻塞和擁塞。VoQ技術(shù)通過為每個輸出端口創(chuàng)建虛擬的輸出隊列,將輸入數(shù)據(jù)包直接放入對應(yīng)的虛擬輸出隊列中。這樣,在數(shù)據(jù)包進入路由器或交換機時就可以直接選擇適當?shù)奶摂M輸出隊列,而無需等待目的端口的可用性。因此,VoQ技術(shù)可以避免輸入緩沖區(qū)排隊可能引起的阻塞和擁塞問題,提高網(wǎng)絡(luò)的吞吐量和性能;

          • 負載均衡(Load balance),也是本文介紹的重點,不同的負載均衡路由策略會對端到端的吞吐率造成很大的影響。流量Load balance按照粒度不同,可以分為以下幾種方式:基于流(Flow based)、基于包(Packet based)、基于流片(Flowlet)、基于信元(Cell based)



          基于流(Flow based)

          基于流的負載均衡路由是以流為單位,把不同的流路由到不同的等價路徑上。傳統(tǒng)的方法是等價多路徑(ECMP)路由,主要通過哈希的方法進行路徑選擇。但由于該方法將大流和小流等同對待,造成不同路徑的帶寬利用率相差較大,并且哈希算法的沖突問題難以實現(xiàn)精確的負載均衡。在實際應(yīng)用中存在如下問題:

          • 在流量大小分布均勻的情況下,ECMP效果較好。然而,在同時存在大象流和老鼠流的情況下,ECMP的效果并不理想。這就導(dǎo)致在AI/ML類應(yīng)用中存在極端的負載分擔不均衡,而且這種不均衡一旦引發(fā)網(wǎng)絡(luò)丟包,就會對整體AI/ML的任務(wù)完成時間帶來顯著的負面影響;

          • 可能加重網(wǎng)絡(luò)鏈路的擁塞問題。由于ECMP僅使用哈希或輪詢方法進行負載均衡,它無法感知到鏈路的擁塞情況。因此,在已經(jīng)存在擁塞的鏈路上使用ECMP可能會進一步加劇擁塞情況;

          • ECMP無法解決非對稱網(wǎng)絡(luò)的性能損失。當數(shù)據(jù)中心網(wǎng)絡(luò)發(fā)生故障時,網(wǎng)絡(luò)結(jié)構(gòu)可能會出現(xiàn)非對稱情況導(dǎo)致無法實現(xiàn)網(wǎng)絡(luò)物理鏈路的均衡分布,進而造成流量不平衡的問題。


          因此,盡管ECMP是一種簡單的負載均衡策略,優(yōu)點是沒有亂序問題,但它存在上述問題,限制了其在某些場景下的有效性。在解決這些問題時,可以考慮使用更復(fù)雜的負載均衡策略或結(jié)合其他技術(shù)來改善網(wǎng)絡(luò)性能和流量分配的均衡性。


          由于ECMP工程復(fù)雜度低、性能可接受,仍然廣泛應(yīng)用在數(shù)據(jù)中心網(wǎng)絡(luò)中。業(yè)界也提出了許多對ECMP進行改進的方法,比如通過集中控制器對大流進行優(yōu)化的路徑選擇等(Hedera方案、BurstBalancer方案)。

          基于包(Packet based)

          隨機包噴灑(Random Packet Spraying,RPS)是一種基于包級別的負載均衡策略。當交換機發(fā)現(xiàn)有多條等價路徑指向同一目的地址時,RPS會將數(shù)據(jù)包以單個包為單位分散到這些路徑上。與ECMP不同,RPS以數(shù)據(jù)包為單位進行操作,將同一流中的不同數(shù)據(jù)包轉(zhuǎn)發(fā)到不同的等價路徑上。

          RPS的優(yōu)點在于簡單易實施,通過細粒度的負載均衡,可以在多條并行路徑之間實現(xiàn)較為均衡的路由選擇,提升端到端的網(wǎng)絡(luò)吞吐率,可以將并行鏈路利用率提高到90%以上。缺點在于可能會造成同一個流的包亂序問題,所以這種方式必須要很好解決亂序問題。例如英偉達的解決方案中,就使用BlueField-3 DPU通過DDP(直接數(shù)據(jù)放置)處理無序數(shù)據(jù),從而形成端到端的完整解決方案。

          基于流片(Flowlet)

          Flowlet本質(zhì)是利用TCP的流突發(fā)特性,根據(jù)設(shè)置一定間隔將流分割為一個個Burst子流,然后每次切換都是在這個間隔中間,從而避免亂序。但是這個方式也有局限性:首先,F(xiàn)lowlet無法應(yīng)對短連接場景,試想如果一個Flow一共就一個Burst,那Flowlet必然無法產(chǎn)生效果;其次,F(xiàn)lowlet是針對TCP的特性設(shè)計的,而RDMA流量并不符合相關(guān)特征,因此,在上層應(yīng)用為RoCE流量時,F(xiàn)lowlet基本沒有效果,這也是在AI/ML等場景中不使用Flowlet的原因。

          Flowlet的實現(xiàn)原理如下:對于TCP Flow,我們通常假設(shè)Packet是平滑發(fā)送的,然而實際上,不管是實際抓包還是從具體實現(xiàn)上看,你都會發(fā)現(xiàn)TCP Packet的發(fā)送其實是Burst的發(fā)送的,如下圖:

          Flowlet實現(xiàn)原理上,可以把一條Flow看成是多個Flowlet組成的,負載均衡就是基于Flowlet來進行了,引入了一個中間層,它既不是Packet,也不是Flow,而是大于Packet小于FlowFlowlet那么到底如何定量去切分Flowlet呢?已知兩條鏈路的延遲分別為D1D2,設(shè)一個數(shù)α,當α滿足下面的條件:α >|D1?D2|,一條Flow便可以通過α來切割為不同的Flowlet

          基于信元(Cell based)

          在基于信元交換的網(wǎng)絡(luò)級負載均衡機制下,接收端設(shè)備接收到報文后,會將報文拆分成的若干信元,信元會基于目的端發(fā)送的調(diào)度信令選擇空閑的鏈路進行轉(zhuǎn)發(fā),到的目的后,信元被重新拼裝成報文發(fā)出設(shè)備。在這樣的機制下,不同于流轉(zhuǎn)發(fā),一個固定的流僅能利用單條路徑,信元交換是動態(tài)的基于微觀負載實時調(diào)整的均衡利用。

          信元交換的粒度比基于包的負載均衡還要細,理論上,帶寬利用率可以更高。信元交換本身并不是一項嶄新的技術(shù),在目前廣泛應(yīng)用的框式設(shè)備中,線卡芯片與網(wǎng)板芯片之間的流量交換普遍都采用了信元交換的技術(shù),以實現(xiàn)機框內(nèi)無阻塞交換。不過信元交換以前主要應(yīng)用在框式設(shè)備系統(tǒng)內(nèi)部,往往都是各個交換機設(shè)備廠商自定義的信元格式和調(diào)度機制,不具備跨廠商互通的能力,此項技術(shù)可以進一步擴展,應(yīng)用到整個網(wǎng)絡(luò)上。2019年AT&T向OCP提交了基于商用芯片的盒式路由器規(guī)范,提出了DDC(Disaggregated Distributed Chassis)的概念,DDC使用的核心技術(shù)也是信元交換的方案。

          AI/ML網(wǎng)絡(luò)支撐的業(yè)務(wù)其特征是流數(shù)量少,單條流的帶寬大,同時流量不均勻,經(jīng)常出現(xiàn)多打一或者多打多的情況(All-to-All和All-Reduce)。所以極易出現(xiàn)流量負載不均、鏈路利用率低、頻繁的流量擁塞導(dǎo)致的丟包等問題,無法充分釋放算力。信元交換將報文切片成Cells(對比Packet based的負載均衡方案,粒度更小),并根據(jù)可達信息采用輪詢機制發(fā)送,流量負載會較為均衡的分配到每一條鏈路,實現(xiàn)帶寬的充分利用,這樣可以解決中大小流的問題,仍然存在相當多的缺陷:

          • 靜態(tài)時延增加;DDC的大緩存能力將報文緩存,勢必增加硬件轉(zhuǎn)發(fā)靜態(tài)時延。同時信元交換,對報文的切片、封裝和重組,同樣增加網(wǎng)絡(luò)轉(zhuǎn)發(fā)時延。通過測試數(shù)據(jù)比較,DDC較傳統(tǒng)ETH網(wǎng)轉(zhuǎn)發(fā)時延增大1.4倍。顯然不適應(yīng)AI計算網(wǎng)絡(luò)的需求。

          • 硬件依賴特定芯片實現(xiàn),封閉、專用;

          • 大緩存設(shè)計增加網(wǎng)絡(luò)成本;

          基于上述分析可以看出以上幾種負載均衡方案,各有優(yōu)劣,從實際部署的角度看,負載均衡的粒度從小到大的順序是Cell based、Packet based、Flowlet、Flow based,對應(yīng)的帶寬利用率則是從高到低,但是由于Cell based自身的限制,實際在智算領(lǐng)域基本沒有應(yīng)用。

          當前高性能計算、分布式存儲、人工智能等應(yīng)用均采用RoCEv2協(xié)議來降低CPU的處理和時延,提升應(yīng)用的性能。然而,由于RDMA的提出之初是承載在無損的InfiniBand網(wǎng)絡(luò)中,RoCEv2協(xié)議缺乏完善的丟包保護機制,對于網(wǎng)絡(luò)丟包異常敏感。盡管可以使用PFC、ECN等流量控制和擁塞控制技術(shù)盡量實現(xiàn)無損網(wǎng)絡(luò)特性,但還是很難應(yīng)對大象流/老鼠流分布不均的影響,而網(wǎng)絡(luò)負載均衡是一個繞不開的點。

          在這方面,各廠家也在做各種努力嘗試。

          比如在英偉達的RoCE解決方案中,可以針對RDMA流和TCP流采用不同的策略,如TCP使用Flowlet,RDMA(RoCE)采用逐包的負載均衡策略。Spectrum可以通過網(wǎng)絡(luò)側(cè)交換機和端側(cè)DPU的緊耦合聯(lián)動,做到實時動態(tài)監(jiān)控ECMP各個鏈路的物理帶寬和端口出口擁塞情況,來做到基于每個報文的動態(tài)負載分擔。

          Spectrum-4交換機負責選擇每個數(shù)據(jù)包基于最低擁塞端口,均勻分配數(shù)據(jù)傳輸。當同一流的不同數(shù)據(jù)包通過網(wǎng)絡(luò)的不同路徑傳輸時,它們可能以無序的方式到達目的地。BlueField-3 DPU通過DDP處理無序數(shù)據(jù),避免了數(shù)據(jù)報文緩存和重組的困擾,通過上述方案,在超大規(guī)模系統(tǒng)和高負載場景下相對傳統(tǒng)RoCE方案性能提升明顯。再比如,華為的智能無損網(wǎng)絡(luò),通過ACCAutomatic ECN)動態(tài)調(diào)整每個交換機的標記閾值,以分布式方式工作,并結(jié)合離線和在線訓(xùn)練以適應(yīng)動態(tài)流量模式,ACC在線速率下實現(xiàn)了老鼠流和大象流的低流完成時間,優(yōu)先調(diào)度小流的報文,從而保障小流的轉(zhuǎn)發(fā)時延,提升整體吞吐性能。

          來源:https://mp.weixin.qq.com/s/Eds7NKqBsejbiS2Tf0Cm_Q

          瀏覽 130
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产探花视频在线观看 | 天天怕天天色 | 黄片视频a | 免费黄色在线视频 | 天天爽夜夜爽人人爽 |