尹將伯, 劉梓田, 梁子寒, 鄧艷紅, 王昌文, 程建東
(1.北京中電普華信息技術有限公司, 北京 100192;2.華北電力大學, 控制與計算機工程學院, 北京 102206)
數據中心作為云計算的核心基礎設施,具有數據匯聚、實時監測、分析等能力,這對數據傳輸的服務質量(如吞吐量、傳輸時延等)提出了很高的要求,先進的數據傳輸策略模型應當能夠提高數據吞吐量、降低傳輸延遲以提供較好的服務質量。數據中心的數據傳輸目前主要面臨以下挑戰。
(1) 數據種類繁多,大小不一,易出現負載不均衡等問題,提高了數據傳輸的延遲,降低了傳輸效率。
(2) 數據傳輸的環境較為復雜,傳統算法不能及時地適應復雜且動態的環境。
(3) 用戶對數據的需求時刻變化。數據的調度策略必須根據實際情況不斷做出變化。
除此之外,數據優先級也影響著對用戶的服務質量,符合生產需求的優先級分類規則可以使重要的數據盡快傳輸,縮短用戶等待時間。因此不僅要考慮延遲對系統的影響,還要考慮數據的優先級如何分配。
針對以上問題,本文設計一種基于深度強化學習(DRL)的數據動態傳輸策略,包括數據分類模塊和動態調度模塊。數據分類模塊通過抽取傳輸數據中不同維度的實時特征,將數據分為5個優先級。動態調度模塊利用DRL技術,通過最小化數據流的平均等待時間,實現數據的動態調度,提高數據傳輸的效率。
強化學習是機器學習的一個熱門研究領域[1]。基本思想是模擬人類在學習中“探索”的機制,通過智能體與環境的交互過程中獲得的獎勵來學習最佳決策行為[2]。近幾年,隨著深度學習的發展,DRL將強化學習和深度學習深度結合,充分利用了強化學習的決策優勢和深度學習的感知優勢,為復雜的感知決策問題提供了新方法[3],在很多復雜的決策問題中都取得了很好的成果。DeepRM[4]是最早將DRL技術應用到資源調度管理中的模型,通過監測數據中心當前的CPU、內存和待調度作業的狀態,分析并做出相應的決策。基于裝箱問題框架的作業調度算法DeepJS[5],可以自動從經驗中計算適應度,以最小化一組作業的完成時間,這種方法不限制輸入維度,可擴展性較高。
DRL與強化學習類似,主要由智能體、狀態、動作、環境、策略以及獎勵組成。智能體是強化學習的本體,其在特定環境下的某個初始狀態st下根據策略π(s,a)執行某一動作at,此時將會轉換到新的狀態st+1。對于該狀態,環境會反饋一個獎勵值[6]。智能體根據新的狀態和反饋的獎勵按照策略選取新的動作at+1。該交互過程不斷重復,根據累積的獎勵值可以知道自己在當前狀態下應執行的一系列動作。
由于強化學習使用二維表來表示策略,當狀態、動作空間較大時,表格就會變得非常龐大,DRL為了解決這一問題,使用神經網絡參數化的方法基于策略πθ(s,a)來估計要采取的動作及狀態,從而達到降低維度的目的[7]。
DRL的交互過程如圖1所示。

圖1 深度強化學習基本架構

圖2 策略模型示意圖
本文設計的數據動態傳輸策略模型共分為數據分類和動態調度2個模塊。
不同類型數據的重要程度不同,應當分配不同的優先級。優先級的級數過少或分類粗糙,會增加等待隊列的長度,導致較為重要的數據不能及時傳輸,降低此類數據的傳輸效率。級數過多會增加策略模型的決策時間,降低數據傳輸的實時性。
通過分析數據的主要特征,根據每類數據的重要程度、緊急程度及用戶需求,策略模型共分為5個優先級。預警、報錯等直接影響系統運行的監測數據最為重要,將其設置為第一優先級,并采用搶占式的調度策略,以保證傳輸此類數據的實時效率;為了提供更高的通信服務質量以及用戶個性化需求,將用戶當前申請訪問的數據設置為第二級;其余數據為一般類型數據,將按照效用函數設置3個優先級,以抵消動態調度模塊可能對優先級隊列產生的影響。
針對數據的特點并參考其他研究人員的成果[8],最終選取數據訪問頻率、最近訪問時間及緊急度等維度對數據進行評價,并使用效用函數來計算每類數據的優先等級。
(1) 訪問頻率
訪問頻繁的數據,代表其重要程度較高。通過式(1)來計算訪問頻率的效用函數:
(1)

(2) 最近訪問時間
根據數據的歷史訪問記錄來進行數據的分級,核心思想是“如果數據最近被訪問過,那么將來被訪問的概率會更高,也意味著更為重要”。設定其效用函數為
U2(i)=Tn/(Tn-Tl(i))
(2)
其中,Tn表示當前時間,Tl(i)表示最近一次的訪問時間。
(3) 緊急度
不同類型的數據對用戶的緊急程度也是不一樣的。如預警信息關系著整個系統能否正常運行,所以將此類數據的緊急度設置為1,將用戶當前需要訪問的數據設置為2,其他數據設置為3。
Pi={1,2,3}
(3)
根據以上3個效用函數,計算總效用值來確定每類數據的優先級:
(4)
當前普遍認為,數據流的傳輸效率極大影響著數據中心的傳輸質量。數據中心中大部分都是傳輸實時性要求較高的數據,所以如何對這類數據進行動態調度,同時滿足時刻變化的用戶需求,是改善數據傳輸延遲的關鍵。
此模塊采用了深度確定性策略梯度算法(DDPG)對數據流進行調度。DDPG算法是DRL中經典的無模型、參數化Actor-Critic算法,結合確定性策略梯度算法和Deep Q Network算法進行學習。DDPG算法分為Actor和Critic兩部分。Actor通過與環境進行交互得到四元組(st(i)、at(i)、rt、st+1(i)),并放入經驗池中。通過經驗回放[9],使Critic能夠非均勻地抽取輸入的數據流狀態st(i)及當前采取的動作at(i),即數據流的傳輸順序。計算出在當前狀態下采取該動作的價值函數Q(s,a|θμ)后,Actor對Q(s,a|θμ)利用策略梯度定理,從而輸出數據流在當前狀態下最優的傳輸順序。
J=E(s~ρβ)[μθ(s)Q(s,a)|(a=μθ(s)]
(5)
同時,Critic根據最優傳輸順序進行策略的更新:
(6)
其中,N為數據流的數目。此模塊的流程如圖3所示。

圖3 動態調度模塊流程圖
此模塊的狀態空間、動作空間及獎勵設計如下。
狀態空間:將可變長度的數據集St(i)作為狀態空間。每類數據都由其3個維度以及優先級進行標識。
動作空間:從數據到傳輸順序的映射。對于每類數據i在時間步t時其動作為at(i)∈[1,N]。其中,N為數據個數。
獎勵:數據越及時進行傳輸,即等待時間越短,用戶的滿意度越高。對于數據傳輸來說,等待時間指數據在傳輸隊列中排隊等待的時間,其公式為
(7)
其中,ti為此數據流中第i條數據的完成時間,ta,i是第i條數據的提交時間。因此將獎勵設定為
(8)
采用與傳統調度算法的對比實驗來評估本策略模型的性能。
為了驗證本策略模型在實際生產環境中的有效性,實驗使用4000條在數據中心截取的真實數據,并分為20組數據集。其中,10組數據集用于模型的訓練,10組用于測試。
實驗假設數據傳輸的物理鏈路只有1條,即數據不能同時被傳輸。為了檢驗算法是否能夠有效降低數據傳輸的時延,利用2.2小節中的式(7)和平均完成時間作為實驗的評價指標。平均完成時間是指完成傳輸1條數據流所需要的時間。
以下實驗將基于DRL的數據動態傳輸策略模型與SJF算法、MFQ算法進行了比較。SJF算法按照數據量大小分配相應的優先級。MFQ算法以時間片輪轉的方式進行調度,是目前公認的較好的一種基于優先級的進程調度算法。
(1) 算法性能比較
從圖4可以看出:在平均等待時間及平均完成時間指標下,基于DRL的動態調整策略模型較MFQ算法的性能提升了約10.83%,這是因為基于DRL的策略模型克服了MFQ算法的時間片可能會分割數據流的問題;基于DRL的策略模型的性能略低于SJF算法,這是因為SJF算法優先傳輸數據量較小的數據流,而這種數據流在數據集中占大多數。

圖4 不同算法的性能表現
(2) 不同優先級的表現
3種算法針對不同優先級數據的性能表現如圖5所示。由于SJF算法未對數據優先級進行特殊優化,最重要的第一優先級沒有得到及時傳輸,但是不同優先級的數據平均等待時間差距較小;MFQ算法雖然考慮了數據具有不同優先級的特點,但第四、第五優先級數據的平均等待時間都比較高;本文基于DRL的策略模型針對優先級進行了優化,5個優先級數據的平均等待時間較MFQ算法分別提升了7.78%,13.61%、4.52%、24.92%、5.08%,說明基于DRL的調度策略的性能較高。鑒于合理的優先級分類規則,第二、第四優先級的指標有較大的提升。因為策略模型沒有平衡每個優先級之間的指標差距,只優先傳輸高優先級的數據,導致第五優先級等待傳輸的時間較長,因此需要進一步優化。

圖5 不同算法基于優先級的性能表現
本文設計了一種基于深度強化學習的數據動態傳輸策略模型,針對數據不同維度的特征進行分析并分配優先級,以最小化平均等待時間為優化目標對數據進行調度。對比實驗結果表明,該策略模型在數據傳輸的延遲優化問題上有著較好的性能,有效降低了數據中心在數據傳輸過程中的延遲,提升了數據傳輸的效率。