王剛
(安徽電子信息職業(yè)技術(shù)學(xué)院 教學(xué)科研處,安徽 蚌埠233030)
交換機(jī)設(shè)備的緩沖區(qū)能在網(wǎng)絡(luò)擁塞或流量突發(fā)時(shí)避免丟包的現(xiàn)象發(fā)生。為降低硬件成本和最大限度地提高緩沖區(qū)利用率,交換機(jī)的多個(gè)隊(duì)列將共享同一個(gè)片上緩沖區(qū)。這種共享自然會導(dǎo)致各種問題。具體來說,一個(gè)隊(duì)列的過度增長可能會損害另一個(gè)隊(duì)列的性能,可能會出現(xiàn)饑餓、吞吐量不足等問題。這種有害干擾可能發(fā)生在看似獨(dú)立的隊(duì)列之間,例如映射到不同端口的隊(duì)列或由獨(dú)立應(yīng)用程序形成的隊(duì)列。網(wǎng)絡(luò)設(shè)備通常采用分層數(shù)據(jù)包準(zhǔn)入控制來協(xié)調(diào)共享空間的使用。緩沖區(qū)管理算法在隊(duì)列之間動態(tài)分割緩沖區(qū)空間[1-3],主動隊(duì)列管理算法選擇性地接納傳入的數(shù)據(jù)包,為每個(gè)單獨(dú)隊(duì)列分配緩沖區(qū)切片[4-5]。
但是,緩沖區(qū)大小跟不上交換機(jī)容量的增加,緩沖區(qū)不足使緩沖區(qū)管理算法無法為每個(gè)隊(duì)列提供隔離[6-7]。另外,由于數(shù)據(jù)中心網(wǎng)絡(luò)存在突發(fā)流量和網(wǎng)絡(luò)擁塞incast現(xiàn)象,緩沖區(qū)的瞬態(tài)需要在設(shè)備級別進(jìn)行控制。緩沖區(qū)共享方案需要提供隔離、有限的消耗時(shí)間和高突發(fā)容忍度[8]。因此,本文提出了基于主動管理的緩沖區(qū)優(yōu)化策略——DCBOpti(Data Center Network Buffer OPtimization)策略。DCBOpti是一種主動緩沖區(qū)管理算法,在不犧牲吞吐量的情況下減緩?fù)话l(fā)流量的影響。具體來說,DCBOpti同時(shí)利用了設(shè)備級別的總緩沖區(qū)占用率和單個(gè)隊(duì)列排空時(shí)間。
通過緩沖區(qū)管理和主動隊(duì)列管理之間的協(xié)作,片上緩沖區(qū)空間能得到充分利用??紤]一個(gè)輸出隊(duì)列共享內(nèi)存分組交換芯片,緩沖區(qū)管理方法動態(tài)決定每個(gè)隊(duì)列的最大長度,主動隊(duì)列管理方法決定傳入的數(shù)據(jù)包是否將被排隊(duì)、標(biāo)記、修剪或丟棄。數(shù)據(jù)包的優(yōu)先級記為p,屬于同一優(yōu)先級的數(shù)據(jù)會被分配到同一個(gè)隊(duì)列。
為了最大化共享緩沖區(qū)的好處,緩沖區(qū)共享方案需要滿足三個(gè)關(guān)鍵屬性,即隔離、有限的排空時(shí)間和可預(yù)測的突發(fā)容忍度。
1.1.1 隔離 由于緩沖區(qū)被多個(gè)隊(duì)列共享,因此某一個(gè)隊(duì)列過度使用緩沖區(qū)可能會干擾交換機(jī)中其他隊(duì)列使用共享緩沖區(qū)的能力。為了避免跨隊(duì)列的干擾,必須隔離不同流量的優(yōu)先級。每個(gè)優(yōu)先級在任何給定時(shí)間占用可配置的最小緩沖區(qū)量。
1.1.2 有限的排空時(shí)間 排隊(duì)延遲是造成短流完成時(shí)間高的根本原因。諸如基于ECN(Explicit Congestion Notification)的AQM(Active Queue Management)方法能用于減少隊(duì)列長度。排隊(duì)延遲也會影響緩沖區(qū)的排空時(shí)間,即被占用的緩沖區(qū)可以多快用于傳入流量。由于多個(gè)隊(duì)列可以共享一個(gè)端口的帶寬,因此具有相同隊(duì)列長度的兩個(gè)隊(duì)列可能會遇到不同的排隊(duì)延遲。
為了避免高排隊(duì)延遲的有害后果,緩沖區(qū)共享方案需要限制每個(gè)隊(duì)列的消耗時(shí)間。具體來說,緩沖區(qū)共享方案需要通過配置來限制服務(wù)速率為μ(t)的隊(duì)列的占用緩沖區(qū)q(t)。
1.1.3 可預(yù)測的突發(fā)容忍度 突發(fā)容忍度的定義為緩沖區(qū)共享方法可以存儲在緩沖區(qū)中的數(shù)據(jù)包的最大突發(fā)。當(dāng)緩沖區(qū)具有足夠的容量承載突發(fā)流量,或者緩沖區(qū)中的數(shù)據(jù)包可以足夠快地被轉(zhuǎn)發(fā),則緩沖區(qū)共享方法能夠吸收傳入的突發(fā)流量。但是,始終保持突發(fā)大小的空緩沖區(qū)量會剝奪隊(duì)列中寶貴的緩沖區(qū),從而導(dǎo)致潛在的吞吐量損失。
(1)
DCBOpti提供跨優(yōu)先級的隔離。具體來說,DCBOpti限定了每個(gè)優(yōu)先級占用的總緩沖區(qū),為每個(gè)優(yōu)先級提供最低緩沖保證。DCBOpti 通過在計(jì)算每個(gè)隊(duì)列閾值時(shí)考慮每個(gè)優(yōu)先級的擁塞隊(duì)列數(shù),因此,沒有任何優(yōu)先級可以獨(dú)占緩沖區(qū)并餓死其他緩沖區(qū)。給定優(yōu)先級的每個(gè)隊(duì)列閾值會隨著該優(yōu)先級的更多隊(duì)列擁塞而降低。
(2)
(3)
(4)
結(jié)合公式(3),能得到如下關(guān)系:
(5)
同理,可以推導(dǎo)出優(yōu)先級 可用的緩沖區(qū)總量的上限 ,即:
(6)
DCBOpti通過根據(jù)每個(gè)隊(duì)列的排空率按比例分配緩沖區(qū)空間來限制排空時(shí)間。DCBOpti 分配的閾值上限為任何優(yōu)先級隊(duì)列p的排空時(shí)間由Γ下式給出,即:
(7)
結(jié)合公式(3),可得如下所示的不等式關(guān)系:
(8)
(9)
DCBOpti的突發(fā)容忍度與其他優(yōu)先級的擁塞隊(duì)列數(shù)量無關(guān)。相反,突發(fā)容忍度只會減少相同優(yōu)先級的擁塞隊(duì)列的數(shù)量。
如果到達(dá)率 使得每個(gè)隊(duì)列在t=0 時(shí)的閾值以大于相應(yīng)隊(duì)列的排空率的速度降低,則聚合緩沖區(qū)無法根據(jù)閾值的變化進(jìn)行排空。在這種情況下,DCBOpti的突發(fā)容忍度如公式(10)所示。
(10)
在t=0時(shí),初始的緩沖區(qū)占用情況如下所示:
(11)
(12)
根據(jù)公式(1),閾值和隊(duì)列長度變化率如下所示:
(13)
(14)
通過求解公式(13)和(14),能得到:
(15)
通過整理公式(15),得到隊(duì)列中流量的到達(dá)率如下所示:
(16)
本研究使用網(wǎng)絡(luò)模擬器NS3進(jìn)行實(shí)驗(yàn)評估[9]。實(shí)驗(yàn)所使用的拓?fù)溆?6個(gè)交換機(jī)和 256 個(gè)服務(wù)器組成,每個(gè)鏈路的容量為10 Gbps,每個(gè)鏈接都有10 μs傳播延遲。實(shí)驗(yàn)使用兩種流量負(fù)載,即網(wǎng)絡(luò)搜索流量和incast流量。
將DCBOpti與現(xiàn)有的緩沖區(qū)管理策略進(jìn)行比較,分別是動態(tài)閾值策略(DynaTh)、流量感知策略(Flow-aware)、完全共享策略(TotalS)和智能緩沖區(qū)策略(IB)。其中,DynaTh按比例分配緩沖區(qū);Flow-aware是基于DynaTh的策略,并優(yōu)先考慮短流;TotalS允許每個(gè)隊(duì)列共享剩余緩沖區(qū);IB同樣是基于DynaTh策略,并使用了近似公平丟棄策略。
不同網(wǎng)絡(luò)負(fù)載下緩沖區(qū)策略的對比結(jié)果如圖1所示。由結(jié)果可知,DCBOpti 大大降低了流完成時(shí)間。圖1展示了不同負(fù)載的數(shù)據(jù)流完成時(shí)間的減緩度,其中固定請求大小為緩沖區(qū)大小的30%。在低負(fù)載下,與DynaTh、Flow-aware、TotalS和 IB 相比,DCBOpti 將數(shù)據(jù)流完成時(shí)間的減緩度平均降低了10%。隨著負(fù)載的增加,DCBOpti在40%負(fù)載下的數(shù)據(jù)流完成時(shí)間的減緩度相比其他策略平均下降了90%。
圖1 不同網(wǎng)絡(luò)負(fù)載下緩沖區(qū)策略的對比 圖2 不同請求大小緩沖區(qū)策略的對比
圖 2 中展示了不同請求大小的數(shù)據(jù)流完成時(shí)間的減緩度。即使請求大小只有緩沖區(qū)大小的15%,與 DynaTh和IB 相比,DCBOpti 平均將數(shù)據(jù)流完成時(shí)間的減緩度降低了將近40%,與 Flow-aware相比 降低了約30%,與 TotalS相比降低了超過50%。隨著請求規(guī)模的增加,DCBOpti 的優(yōu)勢更加明顯。在請求大小為緩沖區(qū)大小的 50% 時(shí),與 DynaTh、Flow-aware、TotalS和 IB 相比,DCBOpti的數(shù)據(jù)流完成時(shí)間的減緩度平均降低了70%。
DCBOpti 不會犧牲吞吐量來服務(wù)短流或者突發(fā)流量。在圖 3和圖4中觀察到,與其他策略相比,DCBOpti 實(shí)現(xiàn)了同等吞吐量。
圖3 不同網(wǎng)絡(luò)負(fù)載下的平均吞吐量 圖4 不同請求大小下的平均吞吐量
本研究提出數(shù)據(jù)中心網(wǎng)絡(luò)緩存區(qū)優(yōu)化策略(記為DCBOpti),以實(shí)現(xiàn)緩沖區(qū)共享,提供隔離、有限的排空時(shí)間和高突發(fā)容忍度。DCBOpti只使用內(nèi)存管理單元可用的統(tǒng)計(jì)數(shù)據(jù),具有可用性且易于實(shí)現(xiàn)。使用實(shí)驗(yàn)驗(yàn)證DCBOpti策略的有效性,結(jié)果顯示DCBOpti能夠有效降低流完成時(shí)間的減緩度,同時(shí)確保了吞吐量性能。后續(xù)的工作將對本研究提出的DCBOpti策略進(jìn)行理論分析,并通過擴(kuò)充實(shí)驗(yàn)以進(jìn)一步評估所提出策略的性能。