丁 尹,桑 楠,李曉瑜*,吳飛舟
(1.電子科技大學(xué)信息與軟件工程學(xué)院,成都 610054;2.北京思特奇信息技術(shù)股份有限公司,北京 100046)
物聯(lián)網(wǎng)和虛擬化等技術(shù)的不斷發(fā)展促進(jìn)電信業(yè)務(wù)量和業(yè)務(wù)種類不斷增加。業(yè)務(wù)服務(wù)器數(shù)量的快速增長,使得電信運(yùn)維也面臨不可避免的優(yōu)化升級(jí)。容量可以理解為預(yù)先分配給特定應(yīng)用系統(tǒng)的資源上限,比如CPU(Central Processing Unit)、內(nèi)存、磁盤、網(wǎng)絡(luò)帶寬等,應(yīng)用系統(tǒng)運(yùn)行是否順暢受容量配置的影響[1]。當(dāng)前大多數(shù)情況下,企業(yè)依靠經(jīng)驗(yàn)或者專家建議手動(dòng)從基礎(chǔ)架構(gòu)中管理、更新、添加或者刪除物理/虛擬服務(wù)器。面對如今快速增長的服務(wù)器數(shù)量,容量管理變得日益重要,傳統(tǒng)運(yùn)維已經(jīng)出現(xiàn)瓶頸。大量的服務(wù)器會(huì)產(chǎn)生海量的性能監(jiān)測數(shù)據(jù),為了更有效地管理和利用這些數(shù)據(jù),電信運(yùn)維行業(yè)提出智能運(yùn)維(Artificial Intelligence for IT Operations,AIOps)系統(tǒng)。通過分析歷史性能數(shù)據(jù),預(yù)測未來的性能趨勢,為運(yùn)維人員提供參考,從而避免系統(tǒng)容量風(fēng)險(xiǎn),實(shí)現(xiàn)系統(tǒng)經(jīng)濟(jì)、平穩(wěn)運(yùn)行。容量管理的一個(gè)重要內(nèi)容就是通過對未來容量資源進(jìn)行預(yù)測以幫助合理分配資源,減少資源冗余。
近年來,越來越多的研究人員開始從事對云計(jì)算數(shù)據(jù)中心歷史容量數(shù)據(jù)進(jìn)行分析,通過建立模型來預(yù)測未來系統(tǒng)容量的相關(guān)工作[2]。常見的傳統(tǒng)預(yù)測模型包括代數(shù)估計(jì)[3]、線性回歸模型[4-5]、差分自回歸移動(dòng)平均(AutoRegressive Integrated Moving Average,ARIMA)模 型[6-8]和 反 向 傳 播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)模型[9]。傳統(tǒng)預(yù)測模型具有易建模的優(yōu)點(diǎn),但是難以實(shí)現(xiàn)高精度的預(yù)測。隨著技術(shù)的不斷發(fā)展,深度學(xué)習(xí)也逐漸被應(yīng)用到容量預(yù)測中去。Mason等[10]使用基本循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)方法精確預(yù)測短期CPU利用率。Rao等[11]和Tran等[12]使用長短時(shí)記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)來預(yù)測未來正在運(yùn)行的應(yīng)用程序的資源使用情況。相比于傳統(tǒng)預(yù)測模型,RNN和LSTM具有更高的預(yù)測精度。除此之外,雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-directional Recurrent Neural Network,BiRNN)模型[13]和雙向長短時(shí)記憶(Bi-directional Long Short-Term Memory,BiLSTM)網(wǎng)絡(luò)[13-14]模型也逐漸被運(yùn)用到容量數(shù)據(jù)預(yù)測中。單向神經(jīng)網(wǎng)絡(luò)僅從過去的輸入中學(xué)習(xí)依賴關(guān)系來預(yù)測輸出,雙向循環(huán)神經(jīng)網(wǎng)絡(luò)不僅能學(xué)習(xí)過去的趨勢還能集合未來的趨勢信息,具有更佳的預(yù)測效果。
目前,多數(shù)研究忽視了容量數(shù)據(jù)種類繁多的問題,對于同一個(gè)業(yè)務(wù),CPU和內(nèi)存往往表現(xiàn)出不同數(shù)據(jù)特征和趨勢,對于不同業(yè)務(wù),監(jiān)測到的不同設(shè)備的CPU數(shù)據(jù)特征也不盡相同,使用同種方法對所有容量指標(biāo)數(shù)據(jù)進(jìn)行預(yù)測,得到的預(yù)測效果參差不齊。楊海民等[15]在對時(shí)間序列進(jìn)行研究時(shí),提出了時(shí)間序列具有趨勢性、周期性和不規(guī)則性,但是未提出具體的分類方法?;诖耍Y(jié)合電信行業(yè)相關(guān)業(yè)務(wù)特點(diǎn),本文提出一種指標(biāo)數(shù)據(jù)類型分類方法,利用該方法將數(shù)據(jù)類型分為趨勢型、周期型和不規(guī)則型。針對其中周期型數(shù)據(jù)預(yù)測,提出基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)預(yù)測模型,記作BiRNNBiLSTM-BI。首先,提出一種忙閑分布分析算法;其次,搭建循環(huán)神經(jīng)網(wǎng)絡(luò)模型;最后,將忙閑信息融入預(yù)測結(jié)果中。
LSTM是RNN的一種變體,主要的改進(jìn)之處就是增加了三個(gè)控制門單元:遺忘門、輸入門和輸出門[16]。LSTM單元結(jié)構(gòu)如圖1所示。
圖1 LSTM單元結(jié)構(gòu)Fig.1 LSTM cell structure
為便于了解,描述LSTM和BiLSTM模型所用到的相關(guān)變量在表1中聲明。
表1 LSTM模型相關(guān)變量說明Tab.1 Description of LSTMmodel related variables
遺忘門計(jì)算公式如式(1)所示:
輸入門計(jì)算公式如式(2)所示:
新細(xì)胞狀態(tài)信息由遺忘門和輸入門共同決定,如式(3)所示:
LSTM的輸出由輸出門和細(xì)胞狀態(tài)信息Ct共同決定,如式(4)所示:
單向神經(jīng)網(wǎng)絡(luò)僅從過去的輸入中學(xué)習(xí)依賴關(guān)系來預(yù)測輸出,雙向神經(jīng)網(wǎng)絡(luò)不僅能學(xué)習(xí)過去的趨勢還能集合未來的趨勢信息。圖2展示了BiLSTM的結(jié)構(gòu)模型。模型通過兩個(gè)獨(dú)立的隱藏層來分析正向和方向序列,將這些隱藏層作為輸入傳遞給同一輸出層[11]。輸出yt的計(jì)算公式如式(5)所示:
圖2 BiLSTM結(jié)構(gòu)Fig.2 BiLSTM structure
本章詳細(xì)闡述基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)數(shù)據(jù)預(yù)測模型。首先,介紹本文提出的指標(biāo)數(shù)據(jù)類型分類方法;其次,介紹提出的忙閑分布分析方法;最后,結(jié)合系統(tǒng)忙閑分布,通過有監(jiān)督學(xué)習(xí),實(shí)現(xiàn)對雙向循環(huán)神經(jīng)網(wǎng)絡(luò)輸出結(jié)果的優(yōu)化調(diào)整。
2.1.1 動(dòng)態(tài)時(shí)間規(guī)整
動(dòng)態(tài)時(shí)間規(guī)整(Dynamic Time Warping,DTW)通過最小化 原 始 序 列x(i),i∈[1,M]和 待 對 齊 的 時(shí) 間 序 列y(j),j∈[1,N]之間的累積距離來提供兩個(gè)時(shí)間序列之間的非線性對齊最佳路徑[17],故可以通過兩個(gè)時(shí)間序列之間的累積距離來衡量兩個(gè)時(shí)間序列的相似性。用d來表示序列兩點(diǎn)之間的距離集合,其中di,j定義如式(6)所示:
用D來表示累積距離合集,其中Di,j表示從原點(diǎn)(1,1)到點(diǎn)(i,j)的最小累積距離。具體計(jì)算方式如式(7)所示,其中i=2,3,…,M,j=2,3,…,N。
初始條件如式(8)所示:
經(jīng)過初期調(diào)研得知不少業(yè)務(wù)的關(guān)鍵指標(biāo)數(shù)據(jù)呈現(xiàn)日周期性。本文選取了一段時(shí)長為k天的時(shí)間序列value,比較相鄰兩天時(shí)間序列之間的相似度,即求相鄰兩天的DTW距離,得到長為k-1的距離序列dist_list,將dist_list與預(yù)先設(shè)置的DTW閾值比較判定該時(shí)間序列是否具有一定的日周期性。
2.1.2 數(shù)據(jù)類型劃分方法
利用動(dòng)態(tài)時(shí)間規(guī)整、平均值、標(biāo)準(zhǔn)差等數(shù)據(jù)特征將指標(biāo)數(shù)據(jù)類型劃分為趨勢型、周期型和不規(guī)則型,數(shù)據(jù)類型劃分流程如圖3所示。
圖3 數(shù)據(jù)類型劃分流程Fig.3 Data type division process
具體方法如下:
1)數(shù)據(jù)預(yù)處理。對監(jiān)測到的目標(biāo)設(shè)備的指標(biāo)數(shù)據(jù)進(jìn)行清洗,得到指定格式的指標(biāo)序列C。
2)數(shù)據(jù)類型判定。計(jì)算序列C的DTW值value_dtw和變異系數(shù)value_cv,其中變異系數(shù)是原始數(shù)據(jù)標(biāo)準(zhǔn)差與原始數(shù)據(jù)平均數(shù)的比值,用來比較衡量數(shù)據(jù)離散程度大小。將value_dtw和value_cv與設(shè)定DTW閾值threshold_dtw、趨勢型變異系數(shù)閾值threshold_cv_trend和周期型變異系數(shù)閾值threshold_cv_periodic進(jìn)行比較,判定數(shù)據(jù)類型,具體過程如下:
步驟1 若value_dtw 步驟2 若value_dtw 步驟3 該類型為不規(guī)則型。 3)數(shù)據(jù)類型輸出。輸出2)中數(shù)據(jù)類型判定結(jié)果。 國有企業(yè)在我國國民經(jīng)濟(jì)中的獨(dú)特地位和作用,其會(huì)計(jì)信息披露工作就尤為重要。我國國有企業(yè)傳統(tǒng)的發(fā)展模式存在的弊端使得國有企業(yè)的經(jīng)營和發(fā)展存在著很多漏洞,長此以往,不只會(huì)影響到國有企業(yè)的正常經(jīng)營和發(fā)展,對于我國經(jīng)濟(jì)社會(huì)發(fā)展也會(huì)起到不利的影響。所以在當(dāng)今的經(jīng)濟(jì)社會(huì)背景下,國有企業(yè)只有通過會(huì)計(jì)信息披露,加強(qiáng)公眾對其的監(jiān)督,才能夠保證國有企業(yè)的健康穩(wěn)定發(fā)展。 業(yè)務(wù)系統(tǒng)的運(yùn)行狀態(tài)往往與人類日常行為密切相關(guān),比如電信行業(yè)的“前臺(tái)頁面”這一業(yè)務(wù)系統(tǒng),主要集中在日間工作時(shí)間,由營業(yè)廳工作人員進(jìn)行使用,夜間的使用率則會(huì)降低。如此,業(yè)務(wù)系統(tǒng)的性能數(shù)據(jù)就會(huì)表現(xiàn)出一些規(guī)律,并且根據(jù)業(yè)務(wù)性質(zhì)的不同,表現(xiàn)出的規(guī)律也會(huì)不同。為了實(shí)現(xiàn)高效的容量預(yù)測,首先要對性能數(shù)據(jù)和業(yè)務(wù)系統(tǒng)進(jìn)行分析,此處主要通過對系統(tǒng)歷史性能數(shù)據(jù)進(jìn)行分析以了解該業(yè)務(wù)系統(tǒng)的忙閑分布情況,應(yīng)用方可結(jié)合系統(tǒng)忙閑時(shí)段分布和相關(guān)性能指標(biāo)閾值合理配置系統(tǒng)資源。本文設(shè)計(jì)了一種忙閑分布分析算法對業(yè)務(wù)系統(tǒng)的關(guān)鍵指標(biāo)進(jìn)行分析以得到系統(tǒng)的忙閑分布規(guī)律。具體方法如下: 1)以CPU指標(biāo)為例,對采集到的歷史指標(biāo)數(shù)據(jù)序列C=[c1,c2,…,ct]進(jìn)行預(yù)處理,得到等時(shí)間間隔分布的指標(biāo)數(shù)據(jù),其中ci∈[0,100]。 2)設(shè)定想要獲取的忙閑粒度interval,以及周期長度period,其中interval和period均代表時(shí)長。 3)將一天中采集到的歷史數(shù)據(jù)按從大到小進(jìn)行排序得到序列A,設(shè)定一個(gè)閾值百分比μ,則當(dāng)天的忙閑閾值λ=A[INT(len(A)?μ)]。 4)對歷史數(shù)據(jù)進(jìn)行忙閑標(biāo)記,若第i天的第n個(gè)采集指標(biāo)值cn小于當(dāng)天忙閑閾值λi即cn<λi時(shí),將該采集點(diǎn)標(biāo)記為閑;否則標(biāo)記為忙。 5)將標(biāo)記后的序列C按每interval時(shí)長為一段劃分為interval_nums段,舍棄掉最后不足的部分,對每段數(shù)據(jù)進(jìn)行如下處理直至該段只剩一個(gè)標(biāo)記點(diǎn): 步驟1 每N個(gè)連續(xù)標(biāo)記點(diǎn)為一組,對歷史數(shù)據(jù)進(jìn)行劃分,舍棄掉最后不足N的部分; 步驟3 對重新標(biāo)記的忙閑標(biāo)記序列重復(fù)步驟1、2。 6)將忙閑序列按照周期時(shí)長period進(jìn)行劃分,得到二維數(shù) 組A=[a1;a2;…;am],其 中ai=[bi1,bi2,…,bin],bij∈{0,1},ai表示第i個(gè)周期,bij表示第i個(gè)周期中第j段的忙閑值,其中0表示閑,1表示忙。對A的每列進(jìn)行頻數(shù)統(tǒng)計(jì),用第n列出現(xiàn)頻數(shù)多的值sn表示該段狀態(tài),得到指定周期的忙閑分布規(guī)律S=[s1,s2,…,sn]。 忙閑時(shí)段分布算法將一天劃分為忙、閑和過渡三個(gè)時(shí)段,為充分利用忙閑信息,模型通過在循環(huán)神經(jīng)網(wǎng)絡(luò)后增加一層線性回歸對預(yù)測結(jié)果進(jìn)行進(jìn)一步的優(yōu)化,具體設(shè)計(jì)如下: 1)數(shù)據(jù)預(yù)處理。首先對監(jiān)測到的目標(biāo)設(shè)備的指標(biāo)數(shù)據(jù)進(jìn)行清洗,填充空值,得到指定格式的指標(biāo)序列C。 2)使用忙閑時(shí)段分布算法對序列C進(jìn)行分析。將序列C按天進(jìn)行劃分得到每天的數(shù)據(jù)序列An,即C=[A1,A2,…,An],設(shè)定兩個(gè)忙閑閾值百分比μ1、μ2,則第i天對應(yīng)的兩個(gè)閾值λi1和λi2分別為Ai[INT(len(Ai)*μ1)]和Ai[INT(len(Ai)*μ2)]。利用忙閑算法得到代表指定時(shí)間粒度忙閑分布規(guī)律的0,1序列Sa、Sb,利用式(9)得到最終忙閑分布規(guī)律序列S=[s1,s2,…,sn],sn∈{0,1,2},0代表閑,1代表忙,2代表過渡段。 3)構(gòu)建基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量數(shù)據(jù)預(yù)測模型。較單層網(wǎng)絡(luò)而言,兩層循環(huán)神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)到更多隱藏信息,且進(jìn)過初步實(shí)驗(yàn)比較,兩層模型效果更佳,故本模型設(shè)計(jì)為兩層網(wǎng)絡(luò)。首先將性能指標(biāo)序列輸入到第一層雙向RNN,其中RNN用來挖掘性能指標(biāo)隨時(shí)間變化的規(guī)律,而雙向神經(jīng)網(wǎng)絡(luò)不僅能學(xué)習(xí)過去的趨勢還能集合未來的趨勢信息。為防止過擬合,模型在雙向RNN層后面設(shè)計(jì)了Dropout層,然后再與雙向LSTM層連接。本文設(shè)計(jì)的模型在雙向LSTM層后面添加了一層全連接層,通過全連接層匯總各個(gè)時(shí)間步的歷史數(shù)據(jù)對未來時(shí)間點(diǎn)數(shù)據(jù)的影響然后輸出一個(gè)實(shí)數(shù)值作為兩層循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)估。最后將全連接層的輸出按照日忙閑分布分為忙、閑和過渡段三類,將三類數(shù)據(jù)分別輸入到三個(gè)線性回歸模型。模型結(jié)構(gòu)如圖4所示。 圖4 BiRNN-BiLSTM-BI模型結(jié)構(gòu)Fig.4 BiRNN-BiLSTM-BImodel structure 4)訓(xùn)練模型。把歷史數(shù)據(jù)劃分成訓(xùn)練集和測試集,將訓(xùn)練集原始數(shù)據(jù)輸入忙閑分布算法模型得到忙閑分布序列,然后將數(shù)據(jù)輸入基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量數(shù)據(jù)預(yù)測模型進(jìn)行訓(xùn)練,并對訓(xùn)練好的模型進(jìn)行評(píng)估。 本章首先介紹了實(shí)驗(yàn)數(shù)據(jù)的概況;然后,給出實(shí)驗(yàn)運(yùn)行環(huán)境、使用到的工具、實(shí)驗(yàn)參數(shù)的設(shè)置以及評(píng)價(jià)指標(biāo)等;接著,實(shí)現(xiàn)本文提出的基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量數(shù)據(jù)預(yù)測模型,并且實(shí)現(xiàn)相關(guān)研究中提到的一些算法以作對比;最后,對實(shí)驗(yàn)結(jié)果進(jìn)行比較分析。 作為衡量主機(jī)性能最重要的指標(biāo)之一的CPU,是需求最高的資源故而也是主機(jī)資源短缺的主要原因[18],故本文選擇CPU資源作為實(shí)驗(yàn)對象。本實(shí)驗(yàn)使用的是北京思特奇信息技術(shù)有限公司(http://www.si-tech.com.cn)提供的某省電信運(yùn)營商客戶關(guān)系管理(Customer Relationship Management,CRM)系統(tǒng)的性能監(jiān)測數(shù)據(jù)。從呈現(xiàn)日周期型數(shù)據(jù)特性的分支業(yè)務(wù)中選取了規(guī)模較大的統(tǒng)一日志和分布式緩存兩個(gè)業(yè)務(wù),再各隨機(jī)選擇了約4個(gè)月CPU數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)。服務(wù)器每6 min采集一次指標(biāo)數(shù)據(jù),每臺(tái)服務(wù)器約31 200條CPU數(shù)據(jù),監(jiān)控中心采集數(shù)據(jù)樣例如表2所示。由于頻繁預(yù)測會(huì)占用大量資源,公司實(shí)際生產(chǎn)中要求以小時(shí)為粒度進(jìn)行預(yù)測,故在預(yù)測前需要對數(shù)據(jù)進(jìn)行處理。 表2 監(jiān)控中心采集數(shù)據(jù)樣例Tab.2 Sample data collected by monitoring center 實(shí)驗(yàn)是在具有3.20GHz時(shí)鐘頻率的Inter Core i7-8700處理器上運(yùn)行的,內(nèi)存大小為16 GB。實(shí)驗(yàn)設(shè)計(jì)為通過前t小時(shí)CPU使用率預(yù)測t+1小時(shí)CPU使用率。結(jié)合運(yùn)維人員工作經(jīng)驗(yàn),并考慮到電信行業(yè)運(yùn)營部門的工作時(shí)長約占一天的0.33,故設(shè)定兩個(gè)忙閑閾值百分比μ1=0.25,μ2=0.35,求得忙閑閾值λ1,λ2。將原始數(shù)據(jù)按照0.8∶0.2劃分成訓(xùn)練集和測試集,通過對不同個(gè)數(shù)神經(jīng)元和不同損失函數(shù)進(jìn)行嘗試,選擇最優(yōu)組合進(jìn)行實(shí)驗(yàn),具體如表3所示。 表3 參數(shù)設(shè)置Tab.3 Parameter setting 預(yù)測的準(zhǔn)確率通過均方誤差(Mean Squared Error,MSE)和平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)衡量。MSE和MAPE計(jì)算公式如下: 其中:truet為第t個(gè)時(shí)間點(diǎn)的真實(shí)值,predictedt為第t個(gè)時(shí)間點(diǎn)的預(yù)測值,m為樣本總數(shù)。 3.3.1 忙閑結(jié)果分析 以某服務(wù)器CPU指標(biāo)數(shù)據(jù)為原始數(shù)據(jù)進(jìn)行忙閑分析,設(shè)定兩個(gè)波動(dòng)值μ1=0.25,μ2=0.35。將μ1和μ2分別作為忙閑閾值百分比代入忙閑分布算法,求得以小時(shí)為粒度的每天忙閑分布序列S1和S2。 S1=[0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0] S2=[0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0] 如圖5所示,實(shí)線為標(biāo)準(zhǔn)化后的CPU使用率。分析灰實(shí)線可以看出,該業(yè)務(wù)服務(wù)器CPU使用率在日間較大而夜間較小,且日間中午時(shí)會(huì)稍微回落。黑虛線為當(dāng)μ1=0.25時(shí)所得的忙閑分布序列S1,由于此時(shí)忙閑閾值λi1較大,所以處于忙狀態(tài)的時(shí)段并不多,大部分時(shí)段處于閑狀態(tài)?;姨摼€為當(dāng)μ2=0.35時(shí)所得的忙閑分布狀態(tài)序列S2,此時(shí)忙閑閾值λi2相對較小,所以處于忙狀態(tài)的時(shí)段較S1相比更多。通過式(9)求得最終忙閑分布序列S。 圖5 忙閑分布Fig.5 Busy and idle distribution S=[0,0,0,0,0,0,0,0,0,1,1,1,2,2,1,1,1,1,2,2,0,0,0,0] 3.3.2 預(yù)測結(jié)果分析 為驗(yàn)證基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)數(shù)據(jù)預(yù)測模型是否具有良好效果,以LSTM、BiLSTM、RNN和BiRNN等模型作為對照組進(jìn)行實(shí)驗(yàn)。 圖6為使用一層BiRNN和一層BiLSTM構(gòu)成的BiRNNBiLSTM網(wǎng)絡(luò)模型進(jìn)行測試得到的結(jié)果,圖7為使用基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)數(shù)據(jù)預(yù)測模型進(jìn)行測試的結(jié)果。圖6、7中橫軸為時(shí)間軸,總共有624個(gè)時(shí)間切片,每個(gè)時(shí)間切片表示1 h;縱軸表示范圍在[0,100%]的CPU使用率。分析圖6、7可知,BiRNN-BiLSTM網(wǎng)絡(luò)雖然能夠反映CPU使用率的變化趨勢,但是在波峰和波谷處與真實(shí)曲線擬合效果不理想,而基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)數(shù)據(jù)預(yù)測模型能夠更好地跟蹤C(jī)PU使用率的變化趨勢,實(shí)現(xiàn)了更精確的預(yù)測。 圖6 BiRNN-BiLSTM預(yù)測結(jié)果Fig.6 BiRNN-BiLSTM prediction results 圖7 BiRNN-BiLSTM-BI預(yù)測結(jié)果Fig.7 BiRNN-BiLSTM-BIprediction results 表4分別列出了在統(tǒng)一日志業(yè)務(wù)和分布式緩存池業(yè)務(wù)這兩個(gè)數(shù)據(jù)集上,使用5種模型進(jìn)行預(yù)測得到的MSE值。由表4可知,對于統(tǒng)一日志業(yè)務(wù),兩層BiLSTM模型的MSE為5.568 0,小于除本文模型的其余幾個(gè)網(wǎng)絡(luò)模型,而BiRNNBiLSTM-BI模型的MSE為4.176 6,MSE值比兩層BiLSTM模型少24.99%。對于分布式緩存池業(yè)務(wù),BiRNN-BiLSTM-BI模型比其余模型中最優(yōu)的兩層BiRNN模型減小了5.33%。 表4 五種兩層網(wǎng)絡(luò)模型預(yù)測結(jié)果Tab.4 Prediction resultsof five two-layer network models 將其與傳統(tǒng)的預(yù)測方法即ARIMA、Holt-Winters算法及BP神經(jīng)網(wǎng)絡(luò)做對比,幾種算法MSE平均值如表5所示。由表5可知,對于統(tǒng)一日志業(yè)務(wù),Holt-Winters三次指數(shù)平滑算法結(jié)果為4.923 0,小于ARIMA和BP神經(jīng)網(wǎng)絡(luò),而BiRNNBiLSTM-BI模型的MSE為4.176 6,誤差值比Holt-Winters指數(shù)平滑算法降低15.16%。對于分布式緩存池業(yè)務(wù),BiRNNBiLSTM-BI比其余模型中最優(yōu)的Holt-Winters降低了45.67%。 表5 本文模型與傳統(tǒng)模型預(yù)測結(jié)果比較Tab.5 Prediction results comparison of proposed model and traditional models 為了驗(yàn)證該容量預(yù)測模型的能力,在Kaggle上選取了一個(gè)Microsoft Azure發(fā)布的虛擬機(jī)CPU使用量數(shù)據(jù)集做進(jìn)一步實(shí)驗(yàn)。由于數(shù)據(jù)集記錄的是CPU的具體大小而不是使用率,故加入MAPE作為評(píng)價(jià)指標(biāo)。 由表6可知,充分利用忙閑分布信息的BiRNN-BiLSTMBI模型表現(xiàn)最優(yōu),其MAPE分別比文獻(xiàn)[13]中提出的BiRNN模型和BiLSTM模型降低了0.32和0.41。 表6 Azure數(shù)據(jù)集上的預(yù)測結(jié)果Tab.6 Prediction results on Azure dataset 從上述實(shí)驗(yàn)結(jié)果中可知,BiRNN-BiLSTM-BI網(wǎng)絡(luò)模型預(yù)測精度更高、誤差更小,說明該模型能更好地對周期型容量指標(biāo)數(shù)據(jù)進(jìn)行預(yù)測。 針對容量指標(biāo)數(shù)據(jù)類型繁多、預(yù)測算法在不同數(shù)據(jù)類型的指標(biāo)數(shù)據(jù)上表現(xiàn)參差不齊的問題,本文提出具體指標(biāo)數(shù)據(jù)類型分類方法,對數(shù)據(jù)類型進(jìn)行劃分,再進(jìn)行預(yù)測。針對其中周期型容量數(shù)據(jù)預(yù)測,提出了一種基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的周期型容量指標(biāo)預(yù)測模型。首先,提出了一種分析忙閑狀態(tài)分布情況的算法,利用該算法對業(yè)務(wù)系統(tǒng)的忙閑分布進(jìn)行分析;其次,搭建循環(huán)神經(jīng)網(wǎng)絡(luò)模型;最后,結(jié)合忙閑分布特征對結(jié)果進(jìn)行優(yōu)化。通過在真實(shí)數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),驗(yàn)證了本文提出模型的有效性。后續(xù)工作將繼續(xù)研究如何優(yōu)化趨勢型和不規(guī)則型的預(yù)測準(zhǔn)確度,并將模型應(yīng)用于實(shí)際電信容量管理中。 感謝電子科技大學(xué)-思特奇未來信息科技聯(lián)合研究院對實(shí)驗(yàn)工作的支持;感謝電子科技大學(xué)詹會(huì)蘭、王問驍?shù)韧瑢W(xué)對本文實(shí)驗(yàn)工作的幫助。2.2 忙閑時(shí)段分布算法
2.3 基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測模型
3 實(shí)驗(yàn)與結(jié)果分析
3.1 實(shí)驗(yàn)數(shù)據(jù)
3.2 實(shí)驗(yàn)環(huán)境
3.3 基于雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測模型
4 結(jié)語