楊敏,徐磊
(1.中電科普天科技股份有限公司,廣東 廣州 510000;2.中國聯合網絡通信有限公司江西省分公司,江西 南昌 330000)
傳統業務平臺由于建設周期過長、資源利用率低、擴展性差等原因,無法適應運營商業務流量突發性、多變性需求。特別是春節、除夕等高峰時間來臨時,傳統平臺無法通過擴容有效解決流量突發問題,因此無法滿足用戶的業務需求。為了應對上述問題,運營商紛紛采用業務網云化的方式來構建業務網云平臺。通過將業務資源上云,
對大量的業務網資源進行統一管理和調度,業務網向用戶提供新的業務能力時,通過資源池虛擬化技術構建業務云資源池,按需向用戶提供資源,不需要頻繁進行擴容建設,實現業務能力提供和業務平臺建設分離。因此,業務網云化的實質是通過實現資源池計算資源、帶寬資源、內存資源的虛擬化后,管理接口與資源平臺進行對接,形成資源共享、按需分配、統一管理、動態調度的能力,實現異構、跨節點資源的管理[1-3]。眾所周知,業務發展與業務網資源需求的容量評估緊密相關,精確的容量評估不僅能夠使得運營商對業務網上云的預算規劃更加貼近真實業務發展需求,還能夠降低企業后期的運營成本。因此,本文就業務網云化的資源池容量規劃問題進行探討:首先,通過對業務量進行中長期預測,確定未來一段時間內用戶對資源的需求量;然后,將用戶對資源需求量轉化為計算資源、帶寬資源、內存資源的需求量;以各類規格虛擬機集合數量最小為目標,結合虛擬機資源約束、資源利用率和負載均衡約束,得到各種規格虛擬機的數量;最后,以最小化能耗和最小化最大鏈路為目標,考慮多維資源約束,確定物理服務器的容量。
業務網云化規劃的目的就是根據業務發展的需求,通過資源的集約化管理,滿足業務網快速發展對物理資源的需求。因此,業務網云化規劃的步驟如下:
(1)對業務網的業務量(業務種類和用戶數量)進行中長期預測,并根據業務量測算業務網資源池所需要的計算資源、存儲資源和網絡資源;
(2)考慮到業務網資源池中各個業務主要由虛擬機來承載,因此,以各類規格虛擬機數量最小為目標,考慮虛擬機資源、資源利用率和負載均衡等約束條件下,確定不同規格虛擬機部署的數量;
(3)虛擬機部署方案確定了物理服務器的容量規劃,本文以整個系統能源效率和網絡性能為約束,通過優化網絡性能的同時,減少資源池能源消耗,從而解決不同規格數量的虛擬機如何放置到物理服務器的問題,進而實現物理服務器硬件資源規模的估計。
近年來,用戶業務量預測方法傾向于采用機器學習[4-7]、深度學習[9-12]實現用戶業務量的中長期預測。相關研究表明,采用機器學習、深度學習的用戶業務量可有效實現中長期預測,優于傳統回歸分析、時間序列分析等短期預測方法[13-15]。本文采用深度學習的方法對用戶業務量進行中長期預測。
對t 時刻每一個區域某種業務等間隔的時間序列xt,其中t=(t-T+1,t-T+2,…,t),系統通過獲取T 個時間間隔(T 一般取60 周)的歷史數據預測未來的業務流量。預測步長為K>30。
時間序列xt定義成一組時間序列向量=[xt-T+1,xt-T+2,…xt]T,采用深度卷積神經(簡稱:CNN,全稱:Convolutional Neural Networks)網絡對特征進行自動提取,然后將深淺層語義特征進行融合,最后利用長短期記憶網絡算法實現時間序列的中長期預測。預測框架如圖1 所示。

圖1 用戶業務量的預測流程
(1)采用卷積神經網絡提取用戶業務量的深淺層語義特征(粗細粒度特征提?。?/p>
將直接輸入到卷積神經網絡中,并將深淺層語義特征進行融合,如圖2 所示:

圖2 深淺層特征融合圖
考慮到本文實際場景需求,采用2 層卷積層對用戶業務量的時間序列進行提取:第1 個卷積層獲得淺層次語義特征,第2 個卷積層獲得深層次語義特征。為了簡化模型結構,兩個池化層實現不同層次特征的降采樣,最終將兩層降采樣的特征展開融合,得到1*k5 個特征。
(2)采用長短期記憶網絡實現業務量中長期預測
轉化成1*k5 個特征=[F1,F2,…Fk5]T后,將其輸入到LSTM(Long Short Term Memory,長短期記憶網絡)中,實現中長期用戶業務量時間序列的預測,具體過程如圖3 所示。

圖3 基于長短期記憶網絡的業務量預測
首先,輸入層輸入m個1*k5 的特征向量,然后,采用LSTM 實現對m個特征向量的隱含特征提取,最后,基于隱含特征輸出步長為K 的業務預測值。在對各類業務中長期預測的基礎上,確定各種業務對計算資源、內存資源和帶寬資源的需求量。
為了實現資源的靈活配置,虛擬機和用戶之間的映射關系是非固定的,當用戶進行業務請求時,管理器根據當前服務器現有資源占用情況以及服務器集群的負載情況決定哪一臺虛擬機提供服務。
虛擬機容量規劃問題可以抽象為多維資源約束的裝箱問題,在已知各種虛擬機規格和業務需求的情況下,通過對不同規格虛擬機的組合優化,計算各種規格虛擬機所需要的數量。
假設第i種業務中長期預測值為xi,對應的計算資源、內存資源和帶寬資源為那么n種業務對計算資源、內存資源和帶寬資源的需求集合可以表示為A=

其中,N(Mj) 表示規格為Mj的虛擬服務器數量。
表示第i種業務部署在規格為Mj的虛擬服務器上的方案,∈(0,1) 1 表示有部署,否則為0。
那么考慮資源能力約束,本文對計算資源、內存資源和帶寬資源進行約束,在保證虛擬機預留足夠資源保證業務正常運行。即:

除此之外,我們還需要考慮虛擬機資源利用率和負載均衡的約束。
本文將計算資源、內存資源和帶寬資源利用率閾值設為uc、um、ub,那么所有規格虛擬機資源利用率達到閾值水平公式可表示為:

負載均衡的約束選取CPU利用率cpuuse、內存利用率memoryuse、響應時間timeresponse、連接數connection和進程數process五個因素來反映第i臺虛擬機的綜合負載。五個因素的影響權重向量為[w1,w2,w3,w4,w5],且w1+w2+w3+w4+w5=1。那么每臺虛擬機的負載均衡約束為:

其中,θ為每一個虛擬機負載閾值。不同規格虛擬機的因素影響權重和負載閾值是不同的。綜合公式(1)—公式(9),得到了資源池需要的不同規格虛擬機數量。結合不同規格虛擬機的資源大小,得到整個資源池不同規格虛擬機的容量。
物理服務器容量規劃可轉化為虛擬機放置的問題。多種規格不同數量虛擬機如何放置,既能滿足業務性能的需求,又能提高物理資源利用率,這是物理服務器容量規劃研究熱點問題。本文基于以下思路來考慮虛擬機放置問題:在業務閑時,通過資源整合的方式將虛擬機集中部署到某些設備上并將空閑的設備關閉或者設置為休眠,提高資源利用率;在業務忙時,考慮網絡性能的約束,最小化最大網絡鏈路利用率,從而網絡流量分布更加均衡,避免網絡鏈路擁塞問題的產生。因此,本文針對物理服務器容量規劃的問題,提出一種能源效率和網絡性能達到平衡的虛擬機放置方法,構建物理服務器與虛擬機匹配模型,以能源效率能耗最小化和最大網絡鏈路利用率最小化為目標,實現物理服務器容量規劃。
假設Nm代表物理服務器的個數,Ym表示物理服務器狀態,Ym={1,0},=1 表示物理服務器m為激活狀態,0表示物理服務器m為休眠狀態。表示規格為Mj的第k個虛擬機部署到第m臺物理服務器中,0 表示規格為Mj的第k個虛擬機沒有部署到第m臺物理服務器中。那么,各個物理資源池的總能耗可以表示為:

其中,Em表示物理服務器的能耗水平,表示物理服務器m的計算資源大??;表示物理服務器m的內存資源大?。槐硎疚锢矸掌鱩 的帶寬資源大小。由于物理資源池中物理服務器的計算資源、內存資源和帶寬資源是具有很大的差異性的,因此,虛擬機的部署數量需要根據各個物理服務器的資源能力確定。公式(10)的最后一項表示一個服務器只能部署到一臺物理服務器中。
除了考慮能耗,還需要考慮網絡流量均衡的問題,避免鏈路擁塞。(s,t) 表示網絡鏈路,Cs,t表示網絡鏈路的容量。表示分配到鏈路(s,t) 上虛擬機對(Mj,Mk)的流量大小,那么鏈路利用率可以表示為:

為了讓最大鏈路利用率最小化,問題可以表示為:

基于資源池總能耗最小化和最大鏈路利用率最小化,得到總目標為:

通過對公式(13)進行計算,得到整個資源池物理服務器的數量,結合不同服務器的資源大小,得到整個資源池各類資源的容量。
本文以某省聯通短信業務平臺的資源池容量規劃為例,某省作為勞務輸出大省,業務在過年的一個月內波峰波谷特別明顯,因此,平臺的建設能力主要參考過年期間的某幾天波峰的業務量,這種情況最適宜能夠驗證業務云平臺按需分配彈性調整能力。
為了驗證本文方法的有效性,本文將按照上述的方法對50 周后的用戶業務量進行預測后對虛擬機和物理服務器的容量進行規劃,并基于需要增加容量規劃的方案對原來的短信中心進行擴容方案部署,在方案部署之后通過對業務進行模擬并對平臺進行性能測試、壓力測試,基于上述的測試進行配置調整,最后進行系統上線,云化部署測試流程如圖4 所示。

圖4 云化部署測試流程圖
負載測試是實現集群負載均衡的實時檢測功能,管理者通過實時檢測集群的負載均衡情況,對照負載均衡的水平隨時調整云平臺的資源利用率閾值,提升云平臺的可靠性。云資源池負載均衡測試結果如圖5 所示:

圖5 負載均衡測試結果圖
由于在規劃虛擬機數量的時候已經考慮了負載均衡的約束以及以最小化最大鏈路利用率的目標規劃物理服務器容量,因此,本文的方法能夠最合理化利用資源池的物理資源,不至于在忙時負載過重導致虛擬機宕機從而耽誤任務順利執行,也不會由于閑時業務需求不大以至于物理資源出現閑置的現象。
通過不同請求數和進程數下系統的響應時長,測算一定時間內所能處理的請求數量。本文分別對10 000 個請求100 個進程、50 000 個請求100 個進程、100 000 個請求100 個進程和200 000 個請求100 個進程進行壓力測試。具體的壓力結果如圖6 所示。
圖6 展示了云平臺對不同進程不同請求的壓力測試性能對照情況,由圖可知,在發送個數在10 000-200 000區間測試4 次,4 次的請求處理成功率均為100%(上圖失敗請求數均為0),每個測試的平均處理的時間從2.328—2.699 ms 之間,業務處理的時間滿足業務最低時延的需求。由此可知,基于本文方法設計的云平臺在高請求和進程的情況下仍然具有較高的性能。這也在一定程度上論證了本文在規劃物理服務器容量時,考慮最大鏈路利用率最小化的目標,能夠讓云資源池能夠在業務量高峰仍然具備較高的性能。

圖6 不同請求不同進程的壓力測試結果
本文以解決業務網集約化資源池的虛擬機和物理服務器容量規劃問題為目標,提出一種業務網云化的資源池容量規劃方法。由實驗可知,本文方法能夠有效估計虛擬機和物理服務器的容量,該方法不僅能夠合理化利用資源池的物理資源,還能降低資源池能耗水平,較好地實現網絡能耗與網絡性能的平衡。