楊敏,徐磊
(1.中電科普天科技股份有限公司,廣東 廣州 510000;2.中國(guó)聯(lián)合網(wǎng)絡(luò)通信有限公司江西省分公司,江西 南昌 330000)
傳統(tǒng)業(yè)務(wù)平臺(tái)由于建設(shè)周期過(guò)長(zhǎng)、資源利用率低、擴(kuò)展性差等原因,無(wú)法適應(yīng)運(yùn)營(yíng)商業(yè)務(wù)流量突發(fā)性、多變性需求。特別是春節(jié)、除夕等高峰時(shí)間來(lái)臨時(shí),傳統(tǒng)平臺(tái)無(wú)法通過(guò)擴(kuò)容有效解決流量突發(fā)問(wèn)題,因此無(wú)法滿足用戶的業(yè)務(wù)需求。為了應(yīng)對(duì)上述問(wèn)題,運(yùn)營(yíng)商紛紛采用業(yè)務(wù)網(wǎng)云化的方式來(lái)構(gòu)建業(yè)務(wù)網(wǎng)云平臺(tái)。通過(guò)將業(yè)務(wù)資源上云,
對(duì)大量的業(yè)務(wù)網(wǎng)資源進(jìn)行統(tǒng)一管理和調(diào)度,業(yè)務(wù)網(wǎng)向用戶提供新的業(yè)務(wù)能力時(shí),通過(guò)資源池虛擬化技術(shù)構(gòu)建業(yè)務(wù)云資源池,按需向用戶提供資源,不需要頻繁進(jìn)行擴(kuò)容建設(shè),實(shí)現(xiàn)業(yè)務(wù)能力提供和業(yè)務(wù)平臺(tái)建設(shè)分離。因此,業(yè)務(wù)網(wǎng)云化的實(shí)質(zhì)是通過(guò)實(shí)現(xiàn)資源池計(jì)算資源、帶寬資源、內(nèi)存資源的虛擬化后,管理接口與資源平臺(tái)進(jìn)行對(duì)接,形成資源共享、按需分配、統(tǒng)一管理、動(dòng)態(tài)調(diào)度的能力,實(shí)現(xiàn)異構(gòu)、跨節(jié)點(diǎn)資源的管理[1-3]。眾所周知,業(yè)務(wù)發(fā)展與業(yè)務(wù)網(wǎng)資源需求的容量評(píng)估緊密相關(guān),精確的容量評(píng)估不僅能夠使得運(yùn)營(yíng)商對(duì)業(yè)務(wù)網(wǎng)上云的預(yù)算規(guī)劃更加貼近真實(shí)業(yè)務(wù)發(fā)展需求,還能夠降低企業(yè)后期的運(yùn)營(yíng)成本。因此,本文就業(yè)務(wù)網(wǎng)云化的資源池容量規(guī)劃問(wèn)題進(jìn)行探討:首先,通過(guò)對(duì)業(yè)務(wù)量進(jìn)行中長(zhǎng)期預(yù)測(cè),確定未來(lái)一段時(shí)間內(nèi)用戶對(duì)資源的需求量;然后,將用戶對(duì)資源需求量轉(zhuǎn)化為計(jì)算資源、帶寬資源、內(nèi)存資源的需求量;以各類(lèi)規(guī)格虛擬機(jī)集合數(shù)量最小為目標(biāo),結(jié)合虛擬機(jī)資源約束、資源利用率和負(fù)載均衡約束,得到各種規(guī)格虛擬機(jī)的數(shù)量;最后,以最小化能耗和最小化最大鏈路為目標(biāo),考慮多維資源約束,確定物理服務(wù)器的容量。
業(yè)務(wù)網(wǎng)云化規(guī)劃的目的就是根據(jù)業(yè)務(wù)發(fā)展的需求,通過(guò)資源的集約化管理,滿足業(yè)務(wù)網(wǎng)快速發(fā)展對(duì)物理資源的需求。因此,業(yè)務(wù)網(wǎng)云化規(guī)劃的步驟如下:
(1)對(duì)業(yè)務(wù)網(wǎng)的業(yè)務(wù)量(業(yè)務(wù)種類(lèi)和用戶數(shù)量)進(jìn)行中長(zhǎng)期預(yù)測(cè),并根據(jù)業(yè)務(wù)量測(cè)算業(yè)務(wù)網(wǎng)資源池所需要的計(jì)算資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源;
(2)考慮到業(yè)務(wù)網(wǎng)資源池中各個(gè)業(yè)務(wù)主要由虛擬機(jī)來(lái)承載,因此,以各類(lèi)規(guī)格虛擬機(jī)數(shù)量最小為目標(biāo),考慮虛擬機(jī)資源、資源利用率和負(fù)載均衡等約束條件下,確定不同規(guī)格虛擬機(jī)部署的數(shù)量;
(3)虛擬機(jī)部署方案確定了物理服務(wù)器的容量規(guī)劃,本文以整個(gè)系統(tǒng)能源效率和網(wǎng)絡(luò)性能為約束,通過(guò)優(yōu)化網(wǎng)絡(luò)性能的同時(shí),減少資源池能源消耗,從而解決不同規(guī)格數(shù)量的虛擬機(jī)如何放置到物理服務(wù)器的問(wèn)題,進(jìn)而實(shí)現(xiàn)物理服務(wù)器硬件資源規(guī)模的估計(jì)。
近年來(lái),用戶業(yè)務(wù)量預(yù)測(cè)方法傾向于采用機(jī)器學(xué)習(xí)[4-7]、深度學(xué)習(xí)[9-12]實(shí)現(xiàn)用戶業(yè)務(wù)量的中長(zhǎng)期預(yù)測(cè)。相關(guān)研究表明,采用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的用戶業(yè)務(wù)量可有效實(shí)現(xiàn)中長(zhǎng)期預(yù)測(cè),優(yōu)于傳統(tǒng)回歸分析、時(shí)間序列分析等短期預(yù)測(cè)方法[13-15]。本文采用深度學(xué)習(xí)的方法對(duì)用戶業(yè)務(wù)量進(jìn)行中長(zhǎng)期預(yù)測(cè)。
對(duì)t 時(shí)刻每一個(gè)區(qū)域某種業(yè)務(wù)等間隔的時(shí)間序列xt,其中t=(t-T+1,t-T+2,…,t),系統(tǒng)通過(guò)獲取T 個(gè)時(shí)間間隔(T 一般取60 周)的歷史數(shù)據(jù)預(yù)測(cè)未來(lái)的業(yè)務(wù)流量。預(yù)測(cè)步長(zhǎng)為K>30。
時(shí)間序列xt定義成一組時(shí)間序列向量=[xt-T+1,xt-T+2,…xt]T,采用深度卷積神經(jīng)(簡(jiǎn)稱(chēng):CNN,全稱(chēng):Convolutional Neural Networks)網(wǎng)絡(luò)對(duì)特征進(jìn)行自動(dòng)提取,然后將深淺層語(yǔ)義特征進(jìn)行融合,最后利用長(zhǎng)短期記憶網(wǎng)絡(luò)算法實(shí)現(xiàn)時(shí)間序列的中長(zhǎng)期預(yù)測(cè)。預(yù)測(cè)框架如圖1 所示。
圖1 用戶業(yè)務(wù)量的預(yù)測(cè)流程
(1)采用卷積神經(jīng)網(wǎng)絡(luò)提取用戶業(yè)務(wù)量的深淺層語(yǔ)義特征(粗細(xì)粒度特征提?。?/p>
將直接輸入到卷積神經(jīng)網(wǎng)絡(luò)中,并將深淺層語(yǔ)義特征進(jìn)行融合,如圖2 所示:
圖2 深淺層特征融合圖
考慮到本文實(shí)際場(chǎng)景需求,采用2 層卷積層對(duì)用戶業(yè)務(wù)量的時(shí)間序列進(jìn)行提取:第1 個(gè)卷積層獲得淺層次語(yǔ)義特征,第2 個(gè)卷積層獲得深層次語(yǔ)義特征。為了簡(jiǎn)化模型結(jié)構(gòu),兩個(gè)池化層實(shí)現(xiàn)不同層次特征的降采樣,最終將兩層降采樣的特征展開(kāi)融合,得到1*k5 個(gè)特征。
(2)采用長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)業(yè)務(wù)量中長(zhǎng)期預(yù)測(cè)
轉(zhuǎn)化成1*k5 個(gè)特征=[F1,F2,…Fk5]T后,將其輸入到LSTM(Long Short Term Memory,長(zhǎng)短期記憶網(wǎng)絡(luò))中,實(shí)現(xiàn)中長(zhǎng)期用戶業(yè)務(wù)量時(shí)間序列的預(yù)測(cè),具體過(guò)程如圖3 所示。
圖3 基于長(zhǎng)短期記憶網(wǎng)絡(luò)的業(yè)務(wù)量預(yù)測(cè)
首先,輸入層輸入m個(gè)1*k5 的特征向量,然后,采用LSTM 實(shí)現(xiàn)對(duì)m個(gè)特征向量的隱含特征提取,最后,基于隱含特征輸出步長(zhǎng)為K 的業(yè)務(wù)預(yù)測(cè)值。在對(duì)各類(lèi)業(yè)務(wù)中長(zhǎng)期預(yù)測(cè)的基礎(chǔ)上,確定各種業(yè)務(wù)對(duì)計(jì)算資源、內(nèi)存資源和帶寬資源的需求量。
為了實(shí)現(xiàn)資源的靈活配置,虛擬機(jī)和用戶之間的映射關(guān)系是非固定的,當(dāng)用戶進(jìn)行業(yè)務(wù)請(qǐng)求時(shí),管理器根據(jù)當(dāng)前服務(wù)器現(xiàn)有資源占用情況以及服務(wù)器集群的負(fù)載情況決定哪一臺(tái)虛擬機(jī)提供服務(wù)。
虛擬機(jī)容量規(guī)劃問(wèn)題可以抽象為多維資源約束的裝箱問(wèn)題,在已知各種虛擬機(jī)規(guī)格和業(yè)務(wù)需求的情況下,通過(guò)對(duì)不同規(guī)格虛擬機(jī)的組合優(yōu)化,計(jì)算各種規(guī)格虛擬機(jī)所需要的數(shù)量。
假設(shè)第i種業(yè)務(wù)中長(zhǎng)期預(yù)測(cè)值為xi,對(duì)應(yīng)的計(jì)算資源、內(nèi)存資源和帶寬資源為那么n種業(yè)務(wù)對(duì)計(jì)算資源、內(nèi)存資源和帶寬資源的需求集合可以表示為A=
其中,N(Mj) 表示規(guī)格為Mj的虛擬服務(wù)器數(shù)量。
表示第i種業(yè)務(wù)部署在規(guī)格為Mj的虛擬服務(wù)器上的方案,∈(0,1) 1 表示有部署,否則為0。
那么考慮資源能力約束,本文對(duì)計(jì)算資源、內(nèi)存資源和帶寬資源進(jìn)行約束,在保證虛擬機(jī)預(yù)留足夠資源保證業(yè)務(wù)正常運(yùn)行。即:
除此之外,我們還需要考慮虛擬機(jī)資源利用率和負(fù)載均衡的約束。
本文將計(jì)算資源、內(nèi)存資源和帶寬資源利用率閾值設(shè)為uc、um、ub,那么所有規(guī)格虛擬機(jī)資源利用率達(dá)到閾值水平公式可表示為:
負(fù)載均衡的約束選取CPU利用率cpuuse、內(nèi)存利用率memoryuse、響應(yīng)時(shí)間timeresponse、連接數(shù)connection和進(jìn)程數(shù)process五個(gè)因素來(lái)反映第i臺(tái)虛擬機(jī)的綜合負(fù)載。五個(gè)因素的影響權(quán)重向量為[w1,w2,w3,w4,w5],且w1+w2+w3+w4+w5=1。那么每臺(tái)虛擬機(jī)的負(fù)載均衡約束為:
其中,θ為每一個(gè)虛擬機(jī)負(fù)載閾值。不同規(guī)格虛擬機(jī)的因素影響權(quán)重和負(fù)載閾值是不同的。綜合公式(1)—公式(9),得到了資源池需要的不同規(guī)格虛擬機(jī)數(shù)量。結(jié)合不同規(guī)格虛擬機(jī)的資源大小,得到整個(gè)資源池不同規(guī)格虛擬機(jī)的容量。
物理服務(wù)器容量規(guī)劃可轉(zhuǎn)化為虛擬機(jī)放置的問(wèn)題。多種規(guī)格不同數(shù)量虛擬機(jī)如何放置,既能滿足業(yè)務(wù)性能的需求,又能提高物理資源利用率,這是物理服務(wù)器容量規(guī)劃研究熱點(diǎn)問(wèn)題。本文基于以下思路來(lái)考慮虛擬機(jī)放置問(wèn)題:在業(yè)務(wù)閑時(shí),通過(guò)資源整合的方式將虛擬機(jī)集中部署到某些設(shè)備上并將空閑的設(shè)備關(guān)閉或者設(shè)置為休眠,提高資源利用率;在業(yè)務(wù)忙時(shí),考慮網(wǎng)絡(luò)性能的約束,最小化最大網(wǎng)絡(luò)鏈路利用率,從而網(wǎng)絡(luò)流量分布更加均衡,避免網(wǎng)絡(luò)鏈路擁塞問(wèn)題的產(chǎn)生。因此,本文針對(duì)物理服務(wù)器容量規(guī)劃的問(wèn)題,提出一種能源效率和網(wǎng)絡(luò)性能達(dá)到平衡的虛擬機(jī)放置方法,構(gòu)建物理服務(wù)器與虛擬機(jī)匹配模型,以能源效率能耗最小化和最大網(wǎng)絡(luò)鏈路利用率最小化為目標(biāo),實(shí)現(xiàn)物理服務(wù)器容量規(guī)劃。
假設(shè)Nm代表物理服務(wù)器的個(gè)數(shù),Ym表示物理服務(wù)器狀態(tài),Ym={1,0},=1 表示物理服務(wù)器m為激活狀態(tài),0表示物理服務(wù)器m為休眠狀態(tài)。表示規(guī)格為Mj的第k個(gè)虛擬機(jī)部署到第m臺(tái)物理服務(wù)器中,0 表示規(guī)格為Mj的第k個(gè)虛擬機(jī)沒(méi)有部署到第m臺(tái)物理服務(wù)器中。那么,各個(gè)物理資源池的總能耗可以表示為:
其中,Em表示物理服務(wù)器的能耗水平,表示物理服務(wù)器m的計(jì)算資源大??;表示物理服務(wù)器m的內(nèi)存資源大??;表示物理服務(wù)器m 的帶寬資源大小。由于物理資源池中物理服務(wù)器的計(jì)算資源、內(nèi)存資源和帶寬資源是具有很大的差異性的,因此,虛擬機(jī)的部署數(shù)量需要根據(jù)各個(gè)物理服務(wù)器的資源能力確定。公式(10)的最后一項(xiàng)表示一個(gè)服務(wù)器只能部署到一臺(tái)物理服務(wù)器中。
除了考慮能耗,還需要考慮網(wǎng)絡(luò)流量均衡的問(wèn)題,避免鏈路擁塞。(s,t) 表示網(wǎng)絡(luò)鏈路,Cs,t表示網(wǎng)絡(luò)鏈路的容量。表示分配到鏈路(s,t) 上虛擬機(jī)對(duì)(Mj,Mk)的流量大小,那么鏈路利用率可以表示為:
為了讓最大鏈路利用率最小化,問(wèn)題可以表示為:
基于資源池總能耗最小化和最大鏈路利用率最小化,得到總目標(biāo)為:
通過(guò)對(duì)公式(13)進(jìn)行計(jì)算,得到整個(gè)資源池物理服務(wù)器的數(shù)量,結(jié)合不同服務(wù)器的資源大小,得到整個(gè)資源池各類(lèi)資源的容量。
本文以某省聯(lián)通短信業(yè)務(wù)平臺(tái)的資源池容量規(guī)劃為例,某省作為勞務(wù)輸出大省,業(yè)務(wù)在過(guò)年的一個(gè)月內(nèi)波峰波谷特別明顯,因此,平臺(tái)的建設(shè)能力主要參考過(guò)年期間的某幾天波峰的業(yè)務(wù)量,這種情況最適宜能夠驗(yàn)證業(yè)務(wù)云平臺(tái)按需分配彈性調(diào)整能力。
為了驗(yàn)證本文方法的有效性,本文將按照上述的方法對(duì)50 周后的用戶業(yè)務(wù)量進(jìn)行預(yù)測(cè)后對(duì)虛擬機(jī)和物理服務(wù)器的容量進(jìn)行規(guī)劃,并基于需要增加容量規(guī)劃的方案對(duì)原來(lái)的短信中心進(jìn)行擴(kuò)容方案部署,在方案部署之后通過(guò)對(duì)業(yè)務(wù)進(jìn)行模擬并對(duì)平臺(tái)進(jìn)行性能測(cè)試、壓力測(cè)試,基于上述的測(cè)試進(jìn)行配置調(diào)整,最后進(jìn)行系統(tǒng)上線,云化部署測(cè)試流程如圖4 所示。
圖4 云化部署測(cè)試流程圖
負(fù)載測(cè)試是實(shí)現(xiàn)集群負(fù)載均衡的實(shí)時(shí)檢測(cè)功能,管理者通過(guò)實(shí)時(shí)檢測(cè)集群的負(fù)載均衡情況,對(duì)照負(fù)載均衡的水平隨時(shí)調(diào)整云平臺(tái)的資源利用率閾值,提升云平臺(tái)的可靠性。云資源池負(fù)載均衡測(cè)試結(jié)果如圖5 所示:
圖5 負(fù)載均衡測(cè)試結(jié)果圖
由于在規(guī)劃虛擬機(jī)數(shù)量的時(shí)候已經(jīng)考慮了負(fù)載均衡的約束以及以最小化最大鏈路利用率的目標(biāo)規(guī)劃物理服務(wù)器容量,因此,本文的方法能夠最合理化利用資源池的物理資源,不至于在忙時(shí)負(fù)載過(guò)重導(dǎo)致虛擬機(jī)宕機(jī)從而耽誤任務(wù)順利執(zhí)行,也不會(huì)由于閑時(shí)業(yè)務(wù)需求不大以至于物理資源出現(xiàn)閑置的現(xiàn)象。
通過(guò)不同請(qǐng)求數(shù)和進(jìn)程數(shù)下系統(tǒng)的響應(yīng)時(shí)長(zhǎng),測(cè)算一定時(shí)間內(nèi)所能處理的請(qǐng)求數(shù)量。本文分別對(duì)10 000 個(gè)請(qǐng)求100 個(gè)進(jìn)程、50 000 個(gè)請(qǐng)求100 個(gè)進(jìn)程、100 000 個(gè)請(qǐng)求100 個(gè)進(jìn)程和200 000 個(gè)請(qǐng)求100 個(gè)進(jìn)程進(jìn)行壓力測(cè)試。具體的壓力結(jié)果如圖6 所示。
圖6 展示了云平臺(tái)對(duì)不同進(jìn)程不同請(qǐng)求的壓力測(cè)試性能對(duì)照情況,由圖可知,在發(fā)送個(gè)數(shù)在10 000-200 000區(qū)間測(cè)試4 次,4 次的請(qǐng)求處理成功率均為100%(上圖失敗請(qǐng)求數(shù)均為0),每個(gè)測(cè)試的平均處理的時(shí)間從2.328—2.699 ms 之間,業(yè)務(wù)處理的時(shí)間滿足業(yè)務(wù)最低時(shí)延的需求。由此可知,基于本文方法設(shè)計(jì)的云平臺(tái)在高請(qǐng)求和進(jìn)程的情況下仍然具有較高的性能。這也在一定程度上論證了本文在規(guī)劃物理服務(wù)器容量時(shí),考慮最大鏈路利用率最小化的目標(biāo),能夠讓云資源池能夠在業(yè)務(wù)量高峰仍然具備較高的性能。
圖6 不同請(qǐng)求不同進(jìn)程的壓力測(cè)試結(jié)果
本文以解決業(yè)務(wù)網(wǎng)集約化資源池的虛擬機(jī)和物理服務(wù)器容量規(guī)劃問(wèn)題為目標(biāo),提出一種業(yè)務(wù)網(wǎng)云化的資源池容量規(guī)劃方法。由實(shí)驗(yàn)可知,本文方法能夠有效估計(jì)虛擬機(jī)和物理服務(wù)器的容量,該方法不僅能夠合理化利用資源池的物理資源,還能降低資源池能耗水平,較好地實(shí)現(xiàn)網(wǎng)絡(luò)能耗與網(wǎng)絡(luò)性能的平衡。