清華最新AIOps案例:強化學習,降低網絡傳輸延時


簡介
本文介紹清華大學聶曉輝等作者發表在JSAC 2019, Artificial Intelligence and Machine Learning for Networking and Communications期刊的論文《Dynamic TCP Initial Windows and CongestionControl Schemes through Reinforcement Learning》。隨着網絡的飛速發展,網絡環境變得復雜多樣,傳統網絡傳輸協議存在的缺陷會導致傳輸效率低。針對短流主導的 Web 應用 (如搜索 引擎、新聞網站等),現有的傳輸協議中,普遍存在流啟動慢的問題,導致流完成時間長。針對長流主導的 Web 應用(如視頻網站、網盤、FTP 服務等),現有擁塞控制算法一般都是靜態配置並且保持不變,而實際Web應用面臨多樣化的網絡環境,不同的網絡環境應該選擇不同的擁塞控制算法,傳統的方法無法保證網絡的高效傳輸。針對短流傳輸效率低的問題,本文提出了一種基於分組強化學習的方法來動態選擇合適的 TCP (Transmission Control Protocol) 初始窗口(InitialWindow, IW),加速短流數據傳輸。針對長流傳輸效率低的問題,本文提出了一種深度強化學習的方法來動態選擇合適的擁塞控制算法 (Congestion Control, CC),加速長流數據傳輸。最終實現系統TCP-RL來動態選擇TCP初始窗口和擁塞控制算法。通過大規模的線上和線下實驗表明,跟現有的方法相比,TCP-RL能夠減少約 23%∼29% 短流的網絡傳輸延遲。在動態變化的網絡環境下,TCP-RL 能夠自動感知網絡變化並且快速適應, 加速長流的數據傳輸。


背景
如今大多數線上的 Web 服務都是基於 TCP 傳輸數據,比如微軟、百度等。TCP 是整個網絡傳輸的重要組成部分,其性能好壞直接影響用戶體驗和公司收入。TCP 性能優化一直以來是熱門的研究話題,基本每年都會有新的擁塞控制算法或者 TCP 優化方法被提出, 但是目前 TCP 的性能依舊無法完全讓人滿意。主要有兩個問題:

 
  • 針對短流的數據傳輸,TCP存在流啟動慢的問題,導致傳輸效率低,沒有充分利用帶寬。
  • 針對長流的數據傳輸,TCP 使用的擁塞控制算法版本的性能離理想情況依舊存在一定距離, 目前有很多工作依舊在優化 TCP 擁塞控制算法。
 
關於第一個問題,當TCP建立連接時,發送端對當前鏈路的網絡情況一無所知,所以為了安全起見,TCP 啟動傳輸時采用了一種靜態保守的初始窗口,之后通過慢啟動和擁塞避免策略來調整擁塞窗口(CWND)的大小,實時探測合適的發送速率。然而針對短流主導的 Web 服務,大部分流沒有完成合適發送速率的探測就完成了數據傳輸。理想情況下,如果發送端直接用合適的帶寬速度發送數據,可能只需要一個 RTT (Round-Trip Time,往返時間) 就能完成數據傳輸,但由於使用的是保守的初始窗口,則需要多個 RTT 完成傳輸,導致帶寬利用率低,網絡傳輸延遲高。本文在百度的前端服務器做了實際的測量,如表1中所示,使用目前標准初 始窗口等於 10 的方法,80% 的 TCP 流在完成數據傳輸后仍處於慢啟動狀態,沒有充分利用帶寬,這是導致延遲高的主要原因之一。
 

以上介紹的問題正是 RFC6077[1] 中提到的 TCP 流啟動慢的問題(Flow Startup Problem), 被專業的研究機構定義為擁塞控制算法開放的研究問題。谷歌(Google) 曾建議將標准的初始窗口從 2~4 提升到 10[2],但這種做法沒有從根本上解決流 啟動慢的核心問題,窗口等於10對一些高速網絡環境(比如100Mbps 光纖)可能 過小,而對於一些低速網絡環境中(比如 GPRS 網絡)可能過大。由於 Web服務 提供商服務的實際用戶所處的位置不同,接入的網絡方式也不同,導致它們網絡 環境不一樣,即便是同一個用戶,其網絡環境也會隨着時間變化而變化,統一使用同一種初始窗口的做法不合理。

關於第二個問題,在過去幾十年里,Web 服務的基礎設施和網絡技術不斷蓬勃發展,比如機器的網卡速率越 來越高,用戶接入的帶寬越來越大,無線網絡的快速崛起(2/3/4/5G)等,可用的網絡帶寬越來越高,使得當前的網絡環境變得多樣化。為了能夠充分利用這些資 源,不斷有人提出新的擁塞控制算法來提升網絡傳輸的性能,比如 Tahoe、Reno、 Cubic、BBR、PCC Vivace、Copa、Indigo等。每種擁塞控制算法聲稱自己是當前性能最佳的算法,然而在2018 年 USENIX Annual Technical Conference (ATC) 會議上發表的一項研究 Pantheon[3]表明,目前在已有的眾多擁塞控制算法版本中,沒有一種算法的性能能夠在所有的網絡環境下擊敗所有其他算法。

本文的最后實驗部分通過大量實驗驗證了 Pantheon的觀點: 目前不存在一種擁塞控制算法能夠在所有的網絡環境下保持性能最佳。如今大部分 Web 服務提供商(比如微軟、百度等)通常的做法是使用統一的擁塞控制算法,如果有 新版本的擁塞控制算法被提出,他們則簡單地測試后決定是否使用,但實際Web 服務提供商面臨的用戶網絡環境非常復雜多樣,而且用戶的網絡環境會隨着時間變化,統一使用一種協議會導致低效的傳輸性能。

為了解決上述兩個問題,本文提出Web服務提供商可以通過利用強化學習的技術來實時動態調整發送端的初始窗口和擁塞控制算法,分別加速短流和長流的網絡傳輸。

挑戰

挑戰一:如何在服務器端測量 TCP 的性能指標數據?

強化學習需要實時的性能指標數據來計算決策 (Action) 的獎勵(Reward),然而傳統的服務器端沒有直接輸出 TCP 性能指標相關的數據,比如流完成時間、TCP 超時率等,所以需要提出一種有效的數據測量和收集方法。

挑戰二:用戶網絡環境多樣化且變化頻繁,如何正確地使用強化學習方法?

強化學習思路是基於最新數據和歷史經驗來調整當前的決策。決策的選擇取決於獎勵函數的分布,獎勵函數的分布取決於環境上下文的(Environment Context) 的情況。在本文中強化學習的環境就是用戶 TCP 流所處的網絡環境 (比如鏈路的剩余的可用帶寬、RTT、丟包率等等)。

針對短流的初始窗口設置問題,單條流傳輸時間短,沒有足夠的信息可供學習,不能確保每個用戶都能使用強化學習來學習初始窗口的大小。通過給用戶做分組可以獲取更多的網絡環境數據,但分組同樣存在問題,如果用戶分組粒度過細,比如一個 IP 為一個用戶,可能導致沒有足夠多的數據采樣來描述用戶的網絡環境,無法計算出合理的TCP 性能指標數據; 如果用戶分組的粒度過粗,比如所有用戶被分到一個用戶組,會導致性能次優。

針對長流的擁塞控制選擇,由於流傳輸時間長,在單條流內有足夠的網絡信息可學,理論上可以為每條流實時動態的選擇合適的擁塞控制算法。

解決方案

本文本提出了動態學習並且設置 TCP 的初始窗口和擁塞控制算法的系統TCP-RL, 只需要在服務器端部署。圖1 為 TCP-RL 的總體設計,針對短流的初始窗口優化問題,通過運行一種新的用戶分組算法,將不同網絡環境的用戶分組,之后利用傳統的強化學習的方法,動態調整每組用戶 TCP 流的初始窗口。針對長流的擁塞控制算法選擇問題, 利用深度強化學習技術,離線訓練強化學習模型,在線利用模型實現單條流的擁塞控制算法選擇。
 
 
<圖1>TCP-RL 的核心思路,Parm 是 IW 或者 CC


為了解決挑戰一,TCP-RL 修改了前端服務器的 Linux 內核代碼和 Web Server 應用 Nginx的代碼,使得服務器能夠測量並且實時輸出每條用戶請求的 TCP 流信息(比如網絡傳輸延遲、丟包率、RTT 等)。整個過程在服務器端完 成,不需要客戶端或者中間件做任何改動。該數據采集和測量的工具不僅僅可以用於初始窗口的調整,也可用於 Web 服務的網絡性能指標管理、監控、 故障診斷。

為了解決挑戰二,針對短流的初始窗口選擇問題,TCP-RL認為擁有更多同樣網絡特征的用戶更容易具有相似的網絡環境, 比如屬於同一個運營商下某特定網段的用戶網絡環境的似度,比該運營商下的所有用戶們的網絡環境相似度更高。因此,TCP-RL提出一種自底向上的用戶分組方法,將所有的 TCP 流從最細粒度的用戶組開始往上聚合,直到找到所有滿足使用強化學習條件的最細粒度的用戶分組,最后利用在線的強化學習方法動態學習初始窗口大小。針對長流的擁塞控制算法選擇問題,通過線下模擬出各種真實網絡環境,在模擬環境中學習得到一個離線的最佳擁塞控制算法選擇的模型,該模型可以直接供真實線上的 TCP 流使用,幫助線上的流選擇最佳的擁塞控制算法,加速流的傳 輸。為了適應網絡變化,TCP-RL用深度學習訓練了一個感知網絡變化的模 型,幫助擁塞控制算法選擇模型快速地適應網絡環境的變化。

初始窗口選擇算法

1、強化學習算法

TCP-RL將學習初始窗口的問題轉變成非平穩環境下的多臂slot machine問題 (non- stationary multi-armed bandit problem),多臂slot machine問題是強化學習領域中典型的問題,它通過在“探索未知決策”和“利用當前最佳決策”之間取得平衡,實現自身利 益最大化。實際有很多的算法用於解決這一類問題。

對於解決穩定環境下的多臂slot machine問題(stationarymulti-armed bandit problem), 強化學習中的 UCB算法被證明是最優的解決方法,UCB 假設環境不變,即 不同決策的獎勵分布是固定不變的,不會隨着時間變化而變化。然而在學習初始窗口這一問題中,用戶的網絡環境會隨着時間變化而變化,所以本文將學習初始窗 口的問題轉變成非平穩環境下的多臂slot machine問題 (non-stationary multi-armed bandit problem)。本節采用了 Discounted UCB 算法,其核心思想是在估算決策的獎勵時, 會給過去該決策的獎勵做加權平均,離當前時間越近的權重越大,離當前時間越遠的權重越小,所以當環境發生變化,Discounted UCB 算法會更多考慮當前時刻的獎勵,所以它適用於解決非平穩環境下的多臂slot machine問題。

Discounted UCB 算法的基本過程如算法1 所示,在時刻 t, 玩家會選擇 It ∈ 1,..., K 中具有最高信心上限(upper-confidence)的決策。具體計算如公式
其中

 
是決策估計出來的獎勵值

 為折扣填充函數(The discounted padding function),如果一個決策在歷史中被頻繁地使用,那么它的
 
會比其他決策小,所以其它歷史上看起來次優的決策在將來也會有一定概率被使用,從而實現決策探測和利用的平衡。
 
 
介紹完 Discounted UCB 的原理后,接下來介紹TCP-RL如何正確的使Discount UCB 算法,主要分為獎勵函數的定義和決策空間的定義這兩部分。
 
  • 獎勵函數定義:TCP-RL目標是通過設置合理的初始窗口來充分利用鏈路的帶寬並且不會造成網絡擁塞,減少網絡傳輸時間。獎勵函數定義如下公式,同時考慮吞吐率和RTT兩個指標。其中 Goodputs(i) 是在 s 時刻使用決策 i 得到的吞吐率,RTTs(i) 是在s 時刻使用決策 i 得到的 RTT,Goodputmax 是在歷史 TCP 吞吐率數據中的最大值, RTTmin 是在歷史 RTT 數據的最小值, α 平衡吞吐率和 RTT 的參數,α 越小,獎勵 函數越看重 RTT,最終算法會為了避免使得 RTT 增大,會選擇比較保守的初始窗 口; 相反,α 越大,獎勵函數越看重吞吐率,最終算法為了得到較大的吞吐率,會選擇比較激進的初始窗口。

 
  • 決策空間的定義:Discounted UCB 的決策空間需要提前定義,而且是一些固定的取值,然而初始窗口是一個連續的取值空間,擁有很大的決策空間,導致無法直接使用 Discounted UCB。TCP-RL使用強化學習的目標之一是需要快速的搜索初始窗口決策空間,找到最優的初始窗口。如果把 Discounted UCB 的初始窗口決策空間定義得過大,會導致算法浪費很多時間在探索新的決策上,最終算法的開銷會很高。為了解決上述問題,TCP-RL提出一種快速滑動決策空間(Sliding-Decision-SpaceMethod)的方法,快速收斂到最優的初始窗口。算法初始化時采用了一個很小的初始窗口決策空間 (比如固定 5 個初始窗口的取值),隨后該決策空間中的初始窗口的取值會隨時他們得到的獎勵動態變化而變化,具體如圖2。
 
<圖2>快速滑動決策空間的過程


2、用戶分組算法

用戶分組方法核心思想是找到所有用戶中最細粒度的用戶分組,使得每個用戶分組都能滿足運行強化學習的條件,即用戶的網絡環境保持一致性和連續性。算法的基本流程是自底向上的搜索過程,搜索滿足運行強化學習條件的用戶,用戶需要同時滿足擁有足夠多的采樣點和網絡環境具有一致性和連續性,利用前文提到的獎勵函數來量化網絡環境,同時考慮環境的帶寬和 RTT。為了量化用戶網絡環境的一致性和連續性,本文定義一種網絡抖動指標。
 
 
n 表示時間窗口的數目,時間窗口的長度為 t, Xs 表示用戶在時間窗口 s 的獲得的獎勵值。由於初始窗口會影響獎勵的計算,所以計算用戶的網絡抖動指標 J 時,保持用戶的初始窗口保持不變。最后通過 J 來量化網絡環境的一致性和連續性。如果 J 很小,說明用戶的網絡環境變化很小。在此定義一個 J 的閾值 T,如果用戶組計算出來的 J < T, 則可以利用強化學習算 法學習用戶組的最優初始窗口。圖3為用戶分組算法的基本流程。
 
 
<圖3>用戶分組算法

擁塞控制選擇算法

為了在不同的網絡環境下自動選出最佳擁塞控制算法,TCP-RL 系統使用了深度強化學習算法來做動態的擁塞控制算法選擇。具體來說,TCP-RL 離線訓練了一個深度強化學習模型,並將其用於給定的網絡環境下在線選擇最佳擁塞控制算法。此外,為了適應動態變化的網絡環境,本節訓練了一個網絡變化感知模型來檢測網絡環境是否發生變化,並用於輔助深度強化學習算法適應於隨時間變化的網絡環境。相比在服務級別 (Service-Level) 靜態人工選擇擁塞控制算法的方法, TCP-RL 這種流級別 (Flow-Level) 的自動、動態的擁塞控制算法選擇方法在動態變化的網絡環境下的性能會有很大提高。

圖4展示了用深度強化學習算法A3C學習擁塞控制算法選擇的過程。與傳統強化學習算法類似,深度強化學習的目標是個體 (Agent) 在環境 (Environment) 中作出決策 (Action) 來獲得最大化累積獎勵 (Reward), 從而訓練模型在不同環境下做出最佳決策。不同於傳統的在線探索-利用機制,深 度強化學習方法通常采用神經網絡利用歷史經驗數據來學習策略(Policy),即在給 定環境下由狀態 (State) s 到決策 a 的轉移矩陣。具體來說,在擁塞控制算法選擇問題中,個體的決策是不同的擁塞控制算法,而個體的狀態則包括服務端的各種 TCP 測量數據 (吞吐量(Throughput)、往返時間 (RTT)、丟包率(Loss rate))。TCP-RL 采集當前服務端的TCP 測量數據作為狀態輸入,利用神經網絡學習擁塞控制算法 的選擇策略,即建立一個從觀測到的網絡狀態到對應決策(擁塞控制算法的選擇) 的映射。根據策略選擇一個擁塞控制算法后,測量當前環境 (Environment) 下使用 該算法進行擁塞控制的 TCP 測量數據作為下一步的狀態,並用吞吐量與往返時間的比值作為當前環境下采用此決策的獎勵 (Reward),表征當前網絡的性能狀況。以 最大化累積獎勵為目標(即動態選擇算法來達到最佳網絡傳輸性能),通過大量的離線訓練得到深度強化學習模型,從而用於在線的動態網絡環境下擁塞控制算法選擇。
 
 
<圖4>使用深度強化學習模型進行擁塞控制算法選擇


實驗

1.  初始窗口優化實驗

TCP-RL實際被用在百度公司的無線搜索業務 (Mobile Search) 上,用於加速無線搜索業務的網頁數據的傳輸,選擇無線搜索業務做評估的主要因為它是典型短流主導的 Web 應用,此外它也是百度公司最重要的業務之一,最終通過在線 A/B testing的方法評估結果,證明相比傳統的方法 TCP-10, TCP-RL能夠為業務整體持續減少約 23% 左右的平均網絡傳輸延遲。對於特定的用戶組,它能夠減少約 30% 的平均網絡傳輸延遲。

圖5為兩組方法得到的平均網絡傳輸延遲。在 2017 年 09 月 12 日 10:00:00之前,兩組機器都采用 TCP-10 的方法,初始窗口都設置成 10,從數據上看,兩組機器的網絡傳輸延遲一樣。在 2017 年 09 月 13 日 10:00:00 之后,其中一組機器 開始采用 TCP-RL的方法,可見平均網絡傳輸延遲在逐漸地減少,並且之后能夠持續比TCP-10的平均網絡傳輸延遲小約23%的比例。同樣圖6反映了TCP-RL在整個網絡傳輸延遲的分布上都能夠帶來性能的提升,比如網絡傳輸延遲的 50、 80 分位數都有約 25% 的性能提升,甚至在 99 分位數都有約 5%。TCP-RL主要是通過提升初始窗口帶來性能的提升,從本節可以看出本次實驗並沒有造成過多的擁塞丟包, 沒有導致 99 分位數的延遲變高。
 
 
<圖5>TCP-RL 和 TCP-10 的平均網絡傳輸延遲
 
 
 
<圖6>相比 TCP-10,TCP-RL在網絡傳輸延遲分布的各個分位數性能都有提升

2.  擁塞控制算法優化實驗

在文中主要通過模擬真實數據傳輸的方法來系統的評估 TCP-RL。具體搭 建了一個實驗平台,它具有重放線上流量和使用不同的TCP擁塞控制算法的功能。通過實驗得到以下結論:
 
  • 在不同的網絡環境下,不同擁塞控制算法的性能排名不一樣,目前不存在一 種擁塞控制算法能夠在所有的網絡環境下保持性能最佳。
  • TCP-RL 訓練的擁塞控制算法選擇的神經網絡模型只需 1 到 2 步就能找到一 個性能最佳或良好的擁塞控制算法。對比現有的 14 種擁塞控制算法,TCP- RL 能夠在 288 種不同的靜態網絡環境下性能排名前 5,對於其中 90% 的情 況,其性能與最佳的性能相比,最多只差 12%。在動態變化的網絡環境下, TCP-RL 能夠自動感知網絡變化並且快速適應,最終保持性能最佳。
  • 在單條流傳輸過程中,如果網絡環境發生變化,TCP-RL 能夠感知並且重新收斂到新的擁塞控制算法。

 為了測試不同擁塞控制算法在不同的網絡環境下的性能,TCP-RL 基於Pantheon平台開發了新的實驗平台。Pantheon 平台提供了權威的擁塞控制算法的實現,此外TCP-RL 利用mahimahi作為網絡模擬的工具,mahimahi 能夠在實際的物理機器上為每條 TCP 流模擬不同的網絡環境。TCP-RL 利用了 288 種網絡環境來訓練擁塞控制算法選擇的神經網絡模型。每種網絡環境主要確定帶寬、RTT 和丟包率。288 種網絡環境是由帶寬 ∈ (1, 5, 10, 20, 50, 70, 100, 150, 200 Mbps), RTT ∈ (10, 20, 40,60, 80, 100, 150, 200ms), 丟包率 ∈ (0, 1%, 2%, 10%) 排列組合而成。

圖7展示了不同擁塞控制算法在 288 種網絡環境下性能排名第一的比例分布,這個結果證明了之前的結論:目前不存在一種擁塞控制算法能夠在所有的網絡環境下保持性能最佳。Copa 協議在 28% 的網絡環境下擁有最佳的性能,屬於性能良好的擁塞控制算法。Cubic、 Fillp 這些擁塞控制在288 種網絡環境下都不能達到最佳的性能排名。
 
 
<圖7>擁塞控制算法在 288 種網絡環境下性能最佳的比例分布

TCP-RL 在 288 種網絡環境下測試了 TCP-RL 學習出來的擁塞控制算法選擇的神經網絡模型,圖8表示在不同網絡環境下 TCP-RL 選擇的擁塞控制算法性能排名的累積分布,可見約 85% 的情況下 TCP-RL 能夠選出性能排名前 5 的算法。
 
 
<圖8>TCP-RL 選擇的擁塞控制算法性能排名

實際鏈路的網絡環境會隨着時間變化,TCP-RL 隨機的模擬了一種網絡環境隨時間變化的情況,每分鍾變化一次網絡的參數,其(帶寬,RTT,丟包率)的變化 軌跡為 (20Mbps, 20 ms, 2%) → (50 Mbps, 40 ms, 1%) → (150 Mbps, 20 ms, 10%) → (200 M bps,20 ms, 1%)。表2展示了所有算法的傳輸性能指標(平均獎勵、平均吞吐率、平均的 95 分位 RTT、平均丟包率)。其中獎勵值、吞吐率越大越好,RTT 和丟包率越小越好。從結果可以看出 TCP-RL 是性能最好的方案。
 
 
<表格2> TCP-RL 與現有算法性能對比結果

結論

針對短流主導的 Web 應用,本文測量了實際百度無線搜索業務的數據驗證了導致網絡傳輸延遲高的主要問題是TCP流啟動慢。針對長流主導的Web應用,不同網絡環境應該使用不同的擁塞控制算法,當前使用單一的擁塞控制控制算法性能存在問題。為了解決這兩個問題,本章設計並實現了TCP-RL系統,為了加速短流的數據傳輸,在 TCP 流傳輸之前,TCP-RL通過分組強化學習方法實時學習最優的 TCP 初始窗口大小並且動態地設置。通過大規模試驗驗證TCP-RL能夠減少約 23%~29% 的網絡傳輸延遲。為了加速長流的數據傳輸,相比一些前人不斷提出新的擁塞控制算法的工作,TCP-RL核心思路是充分利用現有的擁塞控制算法,通過利用深度強化學習的技術,根據當前網絡環境動態選擇與之對應最佳的擁塞控制算法。最終通過大規模的真實網絡環境的模擬實驗驗證,對比現有的 14 種擁塞控制算法,TCP-RL 能夠在 288 種不同的靜態網絡環境下性能排名前 5,綜合性能排名第一。此外,TCP-RL整體系統容易部署,只需要修改服務器端,不需要客戶端做任何的修改即可運行生效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM