下圖就是一個(gè)典型的基于CLOS架構(gòu)的數(shù)據(jù)中心解決方案,在這樣的大規(guī)模網(wǎng)絡(luò)中,如何讓數(shù)據(jù)在傳輸過程中能以最快的速度從發(fā)送端到接收端,成為網(wǎng)絡(luò)性能調(diào)優(yōu)的關(guān)鍵因素。
京東IT資源服務(wù)部舉辦的未來數(shù)據(jù)中心核心技術(shù)研討會(huì)上,京東人工智能,大數(shù)據(jù),云計(jì)算團(tuán)隊(duì)的多位研發(fā)總監(jiān),技術(shù)骨干人員,針對(duì)網(wǎng)絡(luò)影響應(yīng)用性能的話題,展開了深入的討論。
網(wǎng)絡(luò)影響應(yīng)用性能的一個(gè)原因,是處理器的性能越來越高,應(yīng)用到應(yīng)用之間,點(diǎn)對(duì)點(diǎn)延遲越來越低。比如在高性能計(jì)算和AI應(yīng)用中用到的MPI 協(xié)議,點(diǎn)對(duì)點(diǎn)傳輸?shù)难舆t可以小于1微秒(1us), 而現(xiàn)在多數(shù)交換機(jī)的單個(gè)Hop延遲超過了3微秒。
從上面那張拓?fù)鋱D中可以看到,同一數(shù)據(jù)中心需要經(jīng)過5個(gè)Hop(從Rack ToR 到Row Spine,到Data Center Spine, 再到Row Spine,到Rack ToR),這需要消耗15微秒的延遲。1微秒比15微秒,在運(yùn)行應(yīng)用的過程中超過90%的時(shí)間消耗到了網(wǎng)絡(luò)上,這種情形還不包括網(wǎng)絡(luò)上有任何丟包導(dǎo)致的重傳。
如何減小網(wǎng)絡(luò)對(duì)于應(yīng)用性能的影響
-
采用高性能的交換機(jī)。如果交換機(jī)的性能能從3微秒降低到0.3微秒,這樣的話,整個(gè)網(wǎng)絡(luò)的延時(shí)會(huì)降低到原來的十分之一。
-
采用性能高而且穩(wěn)定的交換機(jī)。有的交換機(jī)轉(zhuǎn)發(fā)性能不穩(wěn)定,在不同的包大小情況下,會(huì)有不同的轉(zhuǎn)發(fā)性能,在小包的情況下可以有低的延遲,在大包的情況下延遲會(huì)大幅增加,導(dǎo)致網(wǎng)絡(luò)性能不可預(yù)測。有的交換機(jī)轉(zhuǎn)發(fā)性能可以不隨著包大小的變化而波動(dòng),一直維持在低延遲的狀態(tài)。
- 避免出現(xiàn)多對(duì)一通訊時(shí)的不公平現(xiàn)象。如果出現(xiàn)這種不公平現(xiàn)象,會(huì)導(dǎo)致網(wǎng)絡(luò)轉(zhuǎn)發(fā)速度不均,出現(xiàn)先到后得的現(xiàn)象。
- 建立快速的網(wǎng)絡(luò)擁塞控制機(jī)制。在大型的網(wǎng)絡(luò)中,擁塞是不可避免的,如何能有效的管理擁塞和降低擁塞帶來的丟包和重傳,是現(xiàn)在網(wǎng)絡(luò)管理中非常重要的一個(gè)技術(shù)難點(diǎn)
- 降速慢傳數(shù)據(jù)策略優(yōu)于丟包重傳數(shù)據(jù)。在網(wǎng)絡(luò)中,降速慢傳和丟包重傳是兩種被用來解決擁塞的方式,實(shí)踐證明,慢傳比丟包重傳更能有效的解決擁塞問題。
對(duì)網(wǎng)絡(luò)擁塞的管理和控制
通過研討會(huì)上的討論我們可以發(fā)現(xiàn),應(yīng)用的屬性決定了網(wǎng)絡(luò)中的通訊方式,如存儲(chǔ)應(yīng)用中的多個(gè)initiator訪問單個(gè)或多個(gè)target,MPI應(yīng)用中的多對(duì)多通訊,machine learning中的worker和parameter server通訊,CDN中的一對(duì)多通訊等。
當(dāng)多對(duì)一的情況發(fā)生時(shí),為了減少丟包導(dǎo)致的重傳,我們需要采取措施來降低發(fā)送端的速度,來減少對(duì)交換機(jī)buffer的壓力。在網(wǎng)絡(luò)的擁塞管理和控制上,業(yè)界通常采用PFC(Priority based Flow Control)和ECN(Explicit Congestion Notification)兩種方式來實(shí)現(xiàn)。
- PFC 是在交換機(jī)入口(ingress port)發(fā)起的擁塞管理機(jī)制
在通常無擁塞情況下,交換機(jī)的入口buffer不需要存儲(chǔ)數(shù)據(jù)。當(dāng)交換機(jī)出口(egress port)的buffer達(dá)到一定的閾值時(shí),交換機(jī)的入口buffer開始積累,當(dāng)入口buffer達(dá)到我們設(shè)定的閾值時(shí),交換機(jī)入口開始主動(dòng)的迫使它的上級(jí)端口降速。由于PFC是基于優(yōu)先級(jí)的控制,所以這種反壓可能導(dǎo)致同樣優(yōu)先級(jí)的應(yīng)用受到影響。
- ECN是在交換機(jī)出口(egress port)發(fā)起的擁塞控制機(jī)制
當(dāng)交換機(jī)的出口buffer達(dá)到設(shè)定的閾值時(shí),交換機(jī)會(huì)改變數(shù)據(jù)包頭中的ECN位來給數(shù)據(jù)打上ECN標(biāo)簽,當(dāng)帶ECN標(biāo)簽的數(shù)據(jù)到達(dá)接收端以后,接收端會(huì)生成CNP(Congestion Notification Packet)并將它發(fā)送給發(fā)送端,CNP包含了導(dǎo)致?lián)砣膄low或QP的信息,當(dāng)接收端收到CNP后,會(huì)采取措施降低發(fā)送速度。
可見ECN是基于TCP flow或RDMA QP的擁塞控制機(jī)制,它只對(duì)導(dǎo)致?lián)砣膄low或QP起作用,不會(huì)影響到其他的應(yīng)用。
京東IT資源服務(wù)部的硬件系統(tǒng)部技術(shù)負(fù)責(zé)人王中平提出:在管理網(wǎng)絡(luò)的擁塞中,應(yīng)該綜合應(yīng)用PFC 和ECN 兩種方式,來有效的實(shí)現(xiàn)性能和操作性的平衡。具體的實(shí)施過程中可參考以下推薦:
京東IT資源服務(wù)部負(fù)責(zé)人呂科說:“如何降低網(wǎng)絡(luò)對(duì)于應(yīng)用性能的影響是一個(gè)非常復(fù)雜的問題,也是所有的數(shù)據(jù)中心管理者一直在力求解決的問題。最好的方式就是我們的網(wǎng)絡(luò)人員和應(yīng)用人員一起來討論應(yīng)用對(duì)于網(wǎng)絡(luò)的需求,我們專業(yè)的技術(shù)團(tuán)隊(duì)會(huì)針對(duì)需求,測試和選擇最合適的網(wǎng)絡(luò)產(chǎn)品和網(wǎng)絡(luò)方案。”