王剛
(安徽電子信息職業技術學院 教學科研處,安徽 蚌埠233030)
交換機設備的緩沖區能在網絡擁塞或流量突發時避免丟包的現象發生。為降低硬件成本和最大限度地提高緩沖區利用率,交換機的多個隊列將共享同一個片上緩沖區。這種共享自然會導致各種問題。具體來說,一個隊列的過度增長可能會損害另一個隊列的性能,可能會出現饑餓、吞吐量不足等問題。這種有害干擾可能發生在看似獨立的隊列之間,例如映射到不同端口的隊列或由獨立應用程序形成的隊列。網絡設備通常采用分層數據包準入控制來協調共享空間的使用。緩沖區管理算法在隊列之間動態分割緩沖區空間[1-3],主動隊列管理算法選擇性地接納傳入的數據包,為每個單獨隊列分配緩沖區切片[4-5]。
但是,緩沖區大小跟不上交換機容量的增加,緩沖區不足使緩沖區管理算法無法為每個隊列提供隔離[6-7]。另外,由于數據中心網絡存在突發流量和網絡擁塞incast現象,緩沖區的瞬態需要在設備級別進行控制。緩沖區共享方案需要提供隔離、有限的消耗時間和高突發容忍度[8]。因此,本文提出了基于主動管理的緩沖區優化策略——DCBOpti(Data Center Network Buffer OPtimization)策略。DCBOpti是一種主動緩沖區管理算法,在不犧牲吞吐量的情況下減緩突發流量的影響。具體來說,DCBOpti同時利用了設備級別的總緩沖區占用率和單個隊列排空時間。
通過緩沖區管理和主動隊列管理之間的協作,片上緩沖區空間能得到充分利用。考慮一個輸出隊列共享內存分組交換芯片,緩沖區管理方法動態決定每個隊列的最大長度,主動隊列管理方法決定傳入的數據包是否將被排隊、標記、修剪或丟棄。數據包的優先級記為p,屬于同一優先級的數據會被分配到同一個隊列。
為了最大化共享緩沖區的好處,緩沖區共享方案需要滿足三個關鍵屬性,即隔離、有限的排空時間和可預測的突發容忍度。
1.1.1 隔離 由于緩沖區被多個隊列共享,因此某一個隊列過度使用緩沖區可能會干擾交換機中其他隊列使用共享緩沖區的能力。為了避免跨隊列的干擾,必須隔離不同流量的優先級。每個優先級在任何給定時間占用可配置的最小緩沖區量。

1.1.2 有限的排空時間 排隊延遲是造成短流完成時間高的根本原因。諸如基于ECN(Explicit Congestion Notification)的AQM(Active Queue Management)方法能用于減少隊列長度。排隊延遲也會影響緩沖區的排空時間,即被占用的緩沖區可以多快用于傳入流量。由于多個隊列可以共享一個端口的帶寬,因此具有相同隊列長度的兩個隊列可能會遇到不同的排隊延遲。
為了避免高排隊延遲的有害后果,緩沖區共享方案需要限制每個隊列的消耗時間。具體來說,緩沖區共享方案需要通過配置來限制服務速率為μ(t)的隊列的占用緩沖區q(t)。
1.1.3 可預測的突發容忍度 突發容忍度的定義為緩沖區共享方法可以存儲在緩沖區中的數據包的最大突發。當緩沖區具有足夠的容量承載突發流量,或者緩沖區中的數據包可以足夠快地被轉發,則緩沖區共享方法能夠吸收傳入的突發流量。但是,始終保持突發大小的空緩沖區量會剝奪隊列中寶貴的緩沖區,從而導致潛在的吞吐量損失。

(1)

DCBOpti提供跨優先級的隔離。具體來說,DCBOpti限定了每個優先級占用的總緩沖區,為每個優先級提供最低緩沖保證。DCBOpti 通過在計算每個隊列閾值時考慮每個優先級的擁塞隊列數,因此,沒有任何優先級可以獨占緩沖區并餓死其他緩沖區。給定優先級的每個隊列閾值會隨著該優先級的更多隊列擁塞而降低。

(2)

(3)

(4)
結合公式(3),能得到如下關系:
(5)
同理,可以推導出優先級 可用的緩沖區總量的上限 ,即:
(6)
DCBOpti通過根據每個隊列的排空率按比例分配緩沖區空間來限制排空時間。DCBOpti 分配的閾值上限為任何優先級隊列p的排空時間由Γ下式給出,即:
(7)
結合公式(3),可得如下所示的不等式關系:
(8)

(9)
DCBOpti的突發容忍度與其他優先級的擁塞隊列數量無關。相反,突發容忍度只會減少相同優先級的擁塞隊列的數量。
如果到達率 使得每個隊列在t=0 時的閾值以大于相應隊列的排空率的速度降低,則聚合緩沖區無法根據閾值的變化進行排空。在這種情況下,DCBOpti的突發容忍度如公式(10)所示。
(10)
在t=0時,初始的緩沖區占用情況如下所示:
(11)
(12)
根據公式(1),閾值和隊列長度變化率如下所示:
(13)
(14)
通過求解公式(13)和(14),能得到:
(15)
通過整理公式(15),得到隊列中流量的到達率如下所示:
(16)
本研究使用網絡模擬器NS3進行實驗評估[9]。實驗所使用的拓撲由16個交換機和 256 個服務器組成,每個鏈路的容量為10 Gbps,每個鏈接都有10 μs傳播延遲。實驗使用兩種流量負載,即網絡搜索流量和incast流量。
將DCBOpti與現有的緩沖區管理策略進行比較,分別是動態閾值策略(DynaTh)、流量感知策略(Flow-aware)、完全共享策略(TotalS)和智能緩沖區策略(IB)。其中,DynaTh按比例分配緩沖區;Flow-aware是基于DynaTh的策略,并優先考慮短流;TotalS允許每個隊列共享剩余緩沖區;IB同樣是基于DynaTh策略,并使用了近似公平丟棄策略。
不同網絡負載下緩沖區策略的對比結果如圖1所示。由結果可知,DCBOpti 大大降低了流完成時間。圖1展示了不同負載的數據流完成時間的減緩度,其中固定請求大小為緩沖區大小的30%。在低負載下,與DynaTh、Flow-aware、TotalS和 IB 相比,DCBOpti 將數據流完成時間的減緩度平均降低了10%。隨著負載的增加,DCBOpti在40%負載下的數據流完成時間的減緩度相比其他策略平均下降了90%。

圖1 不同網絡負載下緩沖區策略的對比 圖2 不同請求大小緩沖區策略的對比
圖 2 中展示了不同請求大小的數據流完成時間的減緩度。即使請求大小只有緩沖區大小的15%,與 DynaTh和IB 相比,DCBOpti 平均將數據流完成時間的減緩度降低了將近40%,與 Flow-aware相比 降低了約30%,與 TotalS相比降低了超過50%。隨著請求規模的增加,DCBOpti 的優勢更加明顯。在請求大小為緩沖區大小的 50% 時,與 DynaTh、Flow-aware、TotalS和 IB 相比,DCBOpti的數據流完成時間的減緩度平均降低了70%。
DCBOpti 不會犧牲吞吐量來服務短流或者突發流量。在圖 3和圖4中觀察到,與其他策略相比,DCBOpti 實現了同等吞吐量。

圖3 不同網絡負載下的平均吞吐量 圖4 不同請求大小下的平均吞吐量
本研究提出數據中心網絡緩存區優化策略(記為DCBOpti),以實現緩沖區共享,提供隔離、有限的排空時間和高突發容忍度。DCBOpti只使用內存管理單元可用的統計數據,具有可用性且易于實現。使用實驗驗證DCBOpti策略的有效性,結果顯示DCBOpti能夠有效降低流完成時間的減緩度,同時確保了吞吐量性能。后續的工作將對本研究提出的DCBOpti策略進行理論分析,并通過擴充實驗以進一步評估所提出策略的性能。