京東如何處理數(shù)據(jù)中心網(wǎng)絡對于應用性能的影響
隨著現(xiàn)代數(shù)據(jù)中心規(guī)模的不斷擴張,網(wǎng)絡拓撲和路由轉(zhuǎn)發(fā)變得越來越復雜。傳統(tǒng)的數(shù)據(jù)中心使用大型機和小型機,網(wǎng)絡規(guī)模相對較小,普通的機框式交換機就能滿足網(wǎng)絡的需求。隨著CLOS集群架構(gòu)的普及,標準的x86服務器集群以低成本和高擴展性逐漸取代大型機和小型機而成為數(shù)據(jù)中心的主流。
下圖就是一個典型的基于CLOS架構(gòu)的數(shù)據(jù)中心解決方案,在這樣的大規(guī)模網(wǎng)絡中,如何讓數(shù)據(jù)在傳輸過程中能以最快的速度從發(fā)送端到接收端,成為網(wǎng)絡性能調(diào)優(yōu)的關鍵因素。

京東IT資源服務部舉辦的未來數(shù)據(jù)中心核心技術(shù)研討會上,京東人工智能,大數(shù)據(jù),云計算團隊的多位研發(fā)總監(jiān),技術(shù)骨干人員,針對網(wǎng)絡影響應用性能的話題,展開了深入的討論。
網(wǎng)絡影響應用性能的一個原因,是處理器的性能越來越高,應用到應用之間,點對點延遲越來越低。比如在高性能計算和AI應用中用到的MPI 協(xié)議,點對點傳輸?shù)难舆t可以小于1微秒(1us), 而現(xiàn)在多數(shù)交換機的單個Hop延遲超過了3微秒。
從上面那張拓撲圖中可以看到,同一數(shù)據(jù)中心需要經(jīng)過5個Hop(從Rack ToR 到Row Spine,到Data Center Spine, 再到Row Spine,到Rack ToR),這需要消耗15微秒的延遲。1微秒比15微秒,在運行應用的過程中超過90%的時間消耗到了網(wǎng)絡上,這種情形還不包括網(wǎng)絡上有任何丟包導致的重傳。
如何減小網(wǎng)絡對于應用性能的影響
1、采用高性能的交換機
如果交換機的性能能從3微秒降低到0.3微秒,這樣的話,整個網(wǎng)絡的延時會降低到原來的十分之一。
2、采用性能高而且穩(wěn)定的交換機
有的交換機轉(zhuǎn)發(fā)性能不穩(wěn)定,在不同的包大小情況下,會有不同的轉(zhuǎn)發(fā)性能,在小包的情況下可以有低的延遲,在大包的情況下延遲會大幅增加,導致網(wǎng)絡性能不可預測。有的交換機轉(zhuǎn)發(fā)性能可以不隨著包大小的變化而波動,一直維持在低延遲的狀態(tài)。

3、避免出現(xiàn)多對一通訊時的不公平現(xiàn)象
如果出現(xiàn)這種不公平現(xiàn)象,會導致網(wǎng)絡轉(zhuǎn)發(fā)速度不均,出現(xiàn)先到后得的現(xiàn)象。

4、建立快速的網(wǎng)絡擁塞控制機制
在大型的網(wǎng)絡中,擁塞是不可避免的,如何能有效的管理擁塞和降低擁塞帶來的丟包和重傳,是現(xiàn)在網(wǎng)絡管理中非常重要的一個技術(shù)難點


5、降速慢傳數(shù)據(jù)策略優(yōu)于丟包重傳數(shù)據(jù)
在網(wǎng)絡中,降速慢傳和丟包重傳是兩種被用來解決擁塞的方式,實踐證明,慢傳比丟包重傳更能有效的解決擁塞問題。
對網(wǎng)絡擁塞的管理和控制
通過研討會上的討論我們可以發(fā)現(xiàn),應用的屬性決定了網(wǎng)絡中的通訊方式,如存儲應用中的多個initiator訪問單個或多個target,MPI應用中的多對多通訊,machine learning中的worker和parameter server通訊,CDN中的一對多通訊等。

當多對一的情況發(fā)生時,為了減少丟包導致的重傳,我們需要采取措施來降低發(fā)送端的速度,來減少對交換機buffer的壓力。在網(wǎng)絡的擁塞管理和控制上,業(yè)界通常采用PFC(Priority based Flow Control)和ECN(Explicit Congestion Notification)兩種方式來實現(xiàn)。
1、PFC 是在交換機入口(ingress port)發(fā)起的擁塞管理機制
在通常無擁塞情況下,交換機的入口buffer不需要存儲數(shù)據(jù)。當交換機出口(egress port)的buffer達到一定的閾值時,交換機的入口buffer開始積累,當入口buffer達到我們設定的閾值時,交換機入口開始主動的迫使它的上級端口降速。由于PFC是基于優(yōu)先級的控制,所以這種反壓可能導致同樣優(yōu)先級的應用受到影響。

2、ECN是在交換機出口(egress port)發(fā)起的擁塞控制機制
當交換機的出口buffer達到設定的閾值時,交換機會改變數(shù)據(jù)包頭中的ECN位來給數(shù)據(jù)打上ECN標簽,當帶ECN標簽的數(shù)據(jù)到達接收端以后,接收端會生成CNP(Congestion Notification Packet)并將它發(fā)送給發(fā)送端,CNP包含了導致?lián)砣膄low或QP的信息,當接收端收到CNP后,會采取措施降低發(fā)送速度。
可見ECN是基于TCP flow或RDMA QP的擁塞控制機制,它只對導致?lián)砣膄low或QP起作用,不會影響到其他的應用。

京東IT資源服務部的硬件系統(tǒng)部技術(shù)負責人王中平提出:在管理網(wǎng)絡的擁塞中,應該綜合應用PFC 和ECN 兩種方式,來有效的實現(xiàn)性能和操作性的平衡。具體的實施過程中可參考以下推薦:

京東IT資源服務部負責人呂科說:“如何降低網(wǎng)絡對于應用性能的影響是一個非常復雜的問題,也是所有的數(shù)據(jù)中心管理者一直在力求解決的問題。***的方式就是我們的網(wǎng)絡人員和應用人員一起來討論應用對于網(wǎng)絡的需求,我們專業(yè)的技術(shù)團隊會針對需求,測試和選擇最合適的網(wǎng)絡產(chǎn)品和網(wǎng)絡方案。”















 
 
 



 
 
 
 