大家下午好,非常高興能有機(jī)會這里跟大家分享,我來自百度系統(tǒng)部,今天分享的主題是百度低時(shí)延網(wǎng)絡(luò)的實(shí)踐,主要包括三個部分,第一是低時(shí)延網(wǎng)絡(luò)解決方案,會介紹百度在低時(shí)延網(wǎng)絡(luò)解決方案設(shè)計(jì)過程中如何思考的,第二是低時(shí)延網(wǎng)絡(luò)技術(shù)展望,會介紹低時(shí)延網(wǎng)絡(luò)技術(shù)研究方向,第三是總結(jié)。
首先說一下業(yè)務(wù)背景,人工智能、高性能計(jì)算云,實(shí)時(shí)大數(shù)據(jù)的分析,這些業(yè)務(wù)都屬于時(shí)延敏感型業(yè)務(wù),為什么說是時(shí)延敏感業(yè)務(wù),這里面要介紹幾個技術(shù)場景,如深度學(xué)習(xí)、分布式計(jì)算、分布式存儲、計(jì)算存儲分離,這些技術(shù)對數(shù)據(jù)中心網(wǎng)絡(luò)提出了明確的要求,無丟包和低時(shí)延。網(wǎng)絡(luò)丟包對業(yè)務(wù)性能的影響非常嚴(yán)重,網(wǎng)絡(luò)的時(shí)延也是影響集群計(jì)算性能的首要指標(biāo)。面對這些需求和挑戰(zhàn),我們的數(shù)據(jù)中心網(wǎng)絡(luò)也要同步做出相應(yīng)的改變,來適應(yīng)技術(shù)發(fā)展需要。以前我們數(shù)據(jù)中心是追求大帶寬,無阻塞,到今天應(yīng)該追求低時(shí)延、無丟包。我們的數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)設(shè)計(jì),要從以帶寬為中心的設(shè)計(jì)切換到以時(shí)延為中心的設(shè)計(jì),降低時(shí)延的波動范圍。
設(shè)計(jì)低時(shí)延網(wǎng)絡(luò),先要分析一下網(wǎng)絡(luò)時(shí)延組成,有五個部分,光電傳輸時(shí)延、數(shù)據(jù)串行時(shí)延、設(shè)備轉(zhuǎn)發(fā)時(shí)延、重新排隊(duì)時(shí)延、主機(jī)處理時(shí)延。光點(diǎn)傳播時(shí)延是固定值,沒辦法改變,數(shù)據(jù)串行時(shí)延和設(shè)備轉(zhuǎn)發(fā)時(shí)延,主要是取決于芯片技術(shù)的發(fā)展,其中信號傳輸和芯片pipeline轉(zhuǎn)發(fā)時(shí)延是固化的,依靠升級硬件降低時(shí)延的效果非常有限,我們聚焦的重點(diǎn)是重新排隊(duì)時(shí)延???????主機(jī)處理時(shí)延,通過主機(jī)端加速技術(shù),可以減小主機(jī)處理時(shí)延,我們選擇的方向是RDMA和RoCE,主要考慮成本和技術(shù)成熟度,另外隨著100G技術(shù)的成熟,RoCE的優(yōu)勢越來越明顯,網(wǎng)絡(luò)側(cè)我們選擇的方向是DCB和ECN,通過流控技術(shù),避免網(wǎng)絡(luò)擁塞造成的業(yè)務(wù)丟包。
主機(jī)端的加速,我們是RDMA和RoCE,RDMA性能方面有兩個方面,RDMA的性能優(yōu)勢主要體現(xiàn)在以下幾個方面。1.Zerocopy:減少數(shù)據(jù)拷貝次數(shù),由于沒有將數(shù)據(jù)拷貝到內(nèi)核態(tài),傳輸延遲會顯著提高,2、Kernelbypass&Protocoloffload:不需要內(nèi)核參與,數(shù)據(jù)通路中沒有繁瑣的處理報(bào)頭邏輯,不僅會使延遲降低,而且也大大節(jié)省了CPU的資源。
RDMA和TCP相比,性能提升比較明顯,但是數(shù)據(jù)包大小,以及業(yè)務(wù)模型不同情況下,提升的效果也不同。我們在語音識別訓(xùn)練提速2倍,在機(jī)器翻譯訓(xùn)練提速15倍。
RoCE是RDMA承載協(xié)議,RoCE和Infiniband的性能基本相近,而且比iWARP產(chǎn)業(yè)生態(tài)更加健全,主流網(wǎng)卡廠商都已支持。除此之外,RoCE網(wǎng)絡(luò)在數(shù)據(jù)鏈路層支持標(biāo)準(zhǔn)以太網(wǎng)協(xié)議,在網(wǎng)絡(luò)層上支持IP協(xié)議,因此可以無縫融合到現(xiàn)有的數(shù)據(jù)中心網(wǎng)絡(luò)中,部署和運(yùn)維更加方便,而且設(shè)備成本更低。
以太網(wǎng)采用的是盡力而為的轉(zhuǎn)發(fā)方式,每個網(wǎng)絡(luò)設(shè)備都會盡力的把數(shù)據(jù)轉(zhuǎn)發(fā)給下游的設(shè)備。當(dāng)下游設(shè)備處理能力不足的時(shí)候,網(wǎng)絡(luò)就會出現(xiàn)擁塞或者丟包,所以網(wǎng)絡(luò)本身是不可靠的,無論是TCP或者RDMA協(xié)議,網(wǎng)絡(luò)擁塞和丟包重傳都會讓業(yè)務(wù)性能受到影響,尤其是RDMA協(xié)議對網(wǎng)絡(luò)丟包的容忍度更低。如何減少或者避免網(wǎng)絡(luò)擁塞和丟包,現(xiàn)在通用的解決方案是PFC和ECN的???????控技術(shù),PFC是一種基于隊(duì)列的反壓協(xié)議,在單機(jī)場景下,PFC可以快速、有效的調(diào)節(jié)服務(wù)器速率來保證網(wǎng)絡(luò)不丟包,但是在多級網(wǎng)絡(luò)中,就會出現(xiàn)不公平降速、PFC風(fēng)暴、死鎖等問題,而且當(dāng)有異常服務(wù)器向網(wǎng)絡(luò)中注入PFC報(bào)文時(shí),還可能造成整個網(wǎng)絡(luò)癱瘓,因此,在數(shù)據(jù)中心開啟PFC,需要通過對Pause幀進(jìn)行嚴(yán)格的監(jiān)控、管理,以保證網(wǎng)絡(luò)的可靠性。ECN是一種基于流的端到端流控技術(shù),效果上會優(yōu)于PFC,但是也不是很理想,主要有幾個問題,1、ECN缺點(diǎn)是需要網(wǎng)卡側(cè)生成反壓報(bào)文,反饋路徑周期比較長,2、隨機(jī)性標(biāo)記,會不公平。3、水線設(shè)計(jì)比較復(fù)雜,這也是現(xiàn)階段ECN方案的最大挑戰(zhàn),因?yàn)樗€不是一個固定值,要結(jié)合網(wǎng)絡(luò)架構(gòu)和業(yè)務(wù)特點(diǎn)來設(shè)計(jì)。4、目前各個網(wǎng)卡廠商擁塞算法不一致。雖然方案不理想,但是目前也沒有更好的選擇。
從解決方案設(shè)計(jì)上面來說,ECN和PFC組合配置,針對PFC固有的缺陷問題,可以通過優(yōu)先觸發(fā)ECN報(bào)文,用來減少網(wǎng)絡(luò)中PFC的數(shù)量,在PFC生效前完成流量的降速。
依靠有效流控機(jī)制只能是減少網(wǎng)絡(luò)擁塞和丟包的發(fā)生,網(wǎng)絡(luò)是共享資源,面對多個業(yè)務(wù)并發(fā)流量導(dǎo)致?lián)砣膯栴},是很難避免的。高效的網(wǎng)絡(luò)一定是避免觸發(fā)流控機(jī)制,那么在組網(wǎng)架構(gòu)方面也要同步思考這個問題,比較有效的辦法是用帶寬來換時(shí)間,為服務(wù)器提供端到端的線速轉(zhuǎn)發(fā)能力。下面介紹一下網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)過程中要關(guān)注什么,在低時(shí)延網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)中最關(guān)鍵的指標(biāo)是加速比,加速比越大,網(wǎng)絡(luò)擁塞越少,時(shí)延越低。目前我們的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)是1:1加速比,下一代新架構(gòu)會提升加速比到4:3以上,主要來避免fabric內(nèi)部擁塞和丟包問題,加速比提升會讓網(wǎng)絡(luò)性能提升,新架構(gòu)在性能提升的同時(shí),也要付出更高的組網(wǎng)成本。
下面分享一下在整個設(shè)計(jì)過程中的思考。在整個低時(shí)延網(wǎng)絡(luò)解決方案中有兩個選擇,第一個是單獨(dú)部署PFC,第二個就是PFC和ECN的結(jié)合。結(jié)果很明顯,ECN+PFC的方式優(yōu)于單獨(dú)部署PFC。加速比是很關(guān)鍵的指標(biāo),決定了我們的效率,加速比越高,網(wǎng)絡(luò)優(yōu)勢就越明顯。第三點(diǎn)就是水線的設(shè)計(jì),PFC的水線越大,ECN的水線要適合網(wǎng)絡(luò)模型。
下面分享一下我們在方案設(shè)計(jì)過程中的一些分析,有兩種技術(shù)方案選擇,第一種是單獨(dú)部署PFC、第二種是PFC+ECN組合,我們分別在加速比1:1和加速比4:3環(huán)境下,以及在不同的帶寬利用率下面測試,分別是50%、75%、100%利用率,結(jié)果很明顯,ECN+PFC優(yōu)于單獨(dú)部署PFC,而且在各種利用率情況下均有優(yōu)勢。加速比是關(guān)鍵指標(biāo),加速比決定網(wǎng)絡(luò)效率,越高,優(yōu)勢越明顯。????線設(shè)計(jì)一定要合理,PFC水線的設(shè)置只要滿足HEADROOM,越大越好,ECN水線的設(shè)置需要視不同流量模型而定。
這個分享是PFC+ECN和新方案的對比,新方案是我們在探索的一個方向,就是在tor下行端口單獨(dú)部署ECN,這個方案需要兩個前提條件,ECN控制環(huán)不失效,fabirc內(nèi)部不能丟包,提高加速比來解決fabric內(nèi)部丟包問題,從結(jié)果上看會優(yōu)于PFC+ECN的方案,但是如果fabric內(nèi)部無法保證不丟包,在僅部署ECN時(shí),丟包率非常高,100%利用率時(shí),丟包率高達(dá)5%以上,影響會非常嚴(yán)重,穩(wěn)???????一些還是PFC+ECN的組合方案比較好。提高加速比可以緩解Fabric內(nèi)部端口的擁塞,仍然存在流量不均導(dǎo)致丟包的可能,也要配合一種理想的負(fù)載均衡方案。
以上是百度在低時(shí)延網(wǎng)絡(luò)解決方案上面的思考,下面是我們對未來的技術(shù)展望。我們希望從四個方面進(jìn)行深度的優(yōu)化,控制面、數(shù)據(jù)面、管理面、功能強(qiáng)化。
控制面-優(yōu)化反饋機(jī)制,目前擁塞反饋信息比較單一,反饋內(nèi)容很少,由于是網(wǎng)卡做擁塞通知,反饋路徑周期太長,控制面數(shù)據(jù)未高優(yōu)保障。需要優(yōu)化通知消息,引入更多級別的擁塞通知機(jī)制,包括擁塞程度等信息,通過多種方式提速,比如交換機(jī)設(shè)備直接反饋擁塞通知,縮短反饋路徑,確??刂泼嫦⒃诰W(wǎng)絡(luò)傳遞過程中不被丟棄,同時(shí)由交換機(jī)來觸發(fā)丟包重傳????
數(shù)據(jù)面-多路徑負(fù)載均衡,當(dāng)前多路徑下多采用基于流的哈希算法,實(shí)現(xiàn)數(shù)據(jù)在不同鏈路上調(diào)度,大象流疊加容易造成流量不均,在特定路徑的擁塞。如前面解決方案中介紹,fabric內(nèi)部的負(fù)載均衡很重要,需要從負(fù)載均衡算法方面進(jìn)行優(yōu)化,例如:基于成員接口歷史負(fù)載情況,選擇空閑鏈路。把出接口隊(duì)列長度作為流量均衡的hash因子。切割大象流,把一條流切分???????多組,調(diào)度到不同路徑,且保證不亂序。從這三個方面協(xié)作處理,實(shí)現(xiàn)完美的負(fù)載均衡調(diào)度
管理面-自適應(yīng)網(wǎng)絡(luò)。低時(shí)延網(wǎng)絡(luò)對運(yùn)維的管理自動化提出更多的要求,相對于低時(shí)延網(wǎng)絡(luò)在丟包、性能方面提出更高的要求,網(wǎng)絡(luò)運(yùn)維管理要屏蔽網(wǎng)絡(luò)環(huán)境變化對性能的影響,確保配置永遠(yuǎn)是最優(yōu)的。要達(dá)到自適應(yīng)的網(wǎng)絡(luò)效果,我們認(rèn)為應(yīng)該建立分析。第一點(diǎn)是業(yè)務(wù)的探索和發(fā)現(xiàn),我們要構(gòu)建自己業(yè)務(wù)測量的能力,把業(yè)務(wù)沿途網(wǎng)絡(luò)節(jié)點(diǎn)轉(zhuǎn)發(fā)信息進(jìn)行記錄和提取????第二點(diǎn)是計(jì)算和特征分析,根據(jù)現(xiàn)網(wǎng)實(shí)時(shí)數(shù)據(jù)和業(yè)務(wù)特征,計(jì)算出最優(yōu)的水線閾值和最優(yōu)策略。第三點(diǎn)是下發(fā)和持續(xù)的優(yōu)化。根據(jù)業(yè)務(wù)流量特點(diǎn),自動配置并動態(tài)調(diào)整參數(shù),自動下發(fā)給服務(wù)器和網(wǎng)絡(luò)設(shè)備,實(shí)現(xiàn)自適應(yīng)網(wǎng)絡(luò)配置。
第四點(diǎn)是功能強(qiáng)化-隊(duì)列優(yōu)化,數(shù)據(jù)中心內(nèi)流量特征有兩種,大象流和老鼠流,大象流對時(shí)延不敏感,丟包對整體性能影響較小,但是占據(jù)了80%的流量,網(wǎng)絡(luò)擁塞期間,很容易把交換機(jī)的隊(duì)列占滿,時(shí)延敏感的業(yè)務(wù)流量被餓死,需要從交換機(jī)隊(duì)列層面優(yōu)化,將大象流隔離到單獨(dú)的隊(duì)列中,為老鼠流預(yù)留足夠的buffer,以及單獨(dú)的隊(duì)列設(shè)計(jì),實(shí)現(xiàn)設(shè)備層面的低時(shí)延轉(zhuǎn)????。
以上技術(shù)分享就結(jié)束了。在低時(shí)延網(wǎng)絡(luò)里面業(yè)界也關(guān)注很多,也有很多相應(yīng)的技術(shù),由于時(shí)間關(guān)系就分享這么多??偨Y(jié)一下今天我的分享。共4個部分,第一部分是業(yè)務(wù)定位,低時(shí)延網(wǎng)絡(luò)在百度來說主要是面向百度云和人工智能的內(nèi)生需求,我們分別部署了25G、40G、100G的低時(shí)延網(wǎng)絡(luò),用來支撐業(yè)務(wù)需求。從網(wǎng)絡(luò)定位上面,我們配合整體的網(wǎng)絡(luò)布局,實(shí)現(xiàn)局部的加???????的能力。第三點(diǎn)是產(chǎn)品定位,目前低時(shí)延網(wǎng)絡(luò)中仍然有很多問題和挑戰(zhàn),技術(shù)的優(yōu)化空間還很大,在未來也希望跟廠商共同的去探索。第四點(diǎn)是架構(gòu)演進(jìn)定位,向大規(guī)模網(wǎng)絡(luò)架構(gòu)探索,隨著技術(shù)發(fā)展,逐步優(yōu)化迭代。

