孫凱俐 李暉 陳梅
摘要:準確預測服務器的剩余負載率可以合理地分配系統(tǒng)資源,提高系統(tǒng)的資源使用率。為了能有效提高區(qū)塊鏈應用中各節(jié)點剩余負載率序列預測的準確度,提出了一種差分自回歸移動平均(AutoregressiveIntegratedMovingAverage,ARIMA)模型、BP神經(jīng)網(wǎng)絡以及局部異常因子(LocalOutlierFactor,LOF)算法的組合預測模型。對比ARIMA模型、ARIMA-BP模型、LOF-ARIMA-BP模型的預測結果,比較三個模型的預測能力。實驗結果表明,L0F一ARIMA-BP組合模型的預測精度優(yōu)于ARIMA模型以及ARIMA-BP模型。
[關鍵詞]區(qū)塊鏈剩余負載率ARIMA模型BP神經(jīng)網(wǎng)絡局部異常因子算法
1引言
區(qū)塊鏈具有去中心化和不可篡改的特點,將醫(yī)療數(shù)據(jù)加密存儲在區(qū)塊鏈中,相比較傳統(tǒng)的中心化存儲方式,既可以避免單點故障又可以防止醫(yī)療數(shù)據(jù)被篡改,實現(xiàn)了在保護隱私的醫(yī)療數(shù)據(jù)的基礎上方便用戶實時共享。區(qū)塊鏈本質(zhì)上是一個去中心化的分布式數(shù)據(jù)庫,即系統(tǒng)中的每個節(jié)點都存在一個擁有完整數(shù)據(jù)的數(shù)據(jù)庫,所以醫(yī)療數(shù)據(jù)共享實際上是對分布式數(shù)據(jù)庫進行查詢操作。
在一個應用系統(tǒng)中,如果隨著用戶查詢請求任務數(shù)量的增加系統(tǒng)不能合理分配任務,將會出現(xiàn)過多的任務被分配給一個或部分節(jié)點的情況,嚴重影響服務質(zhì)量。為了使系統(tǒng)能均衡地分配任務,充分利用各節(jié)點的資源,需了解各節(jié)點服務器的資源使用情況。而服務器的剩余負載率可以很好的體現(xiàn)服務器的當前性能。為了預先獲得各節(jié)點的負載變化,減少由于負載信息傳遞時延帶來的誤差,需要對服務器的剩余負載率進行預測,然后結合區(qū)塊鏈的特點根據(jù)各節(jié)點的區(qū)塊高度和預測的剩余負載率合理分配任務。這里加入?yún)^(qū)塊高度是因為各節(jié)點區(qū)塊鏈中區(qū)塊的同步存在時延,只有區(qū)塊高度最高的區(qū)塊鏈才保存有最完整的數(shù)據(jù)信息。
本文主要研究如何根據(jù)收集到的服務器和虛擬機的各項指標信息來構建準確度高的剩余負載率預測模型。實際上,絕大多數(shù)的服務器的剩余負載率受到并發(fā)請求數(shù)、服務等級協(xié)議等多方面隨機因素的影響,導致數(shù)據(jù)有非常大的隨機波動。雖然傳統(tǒng)的預測算法具有良好的預測性能,但單一模型很難考慮到所有隨機因素。本文采用LOF-ARIMA-BP組合預測模型對服務器剩余負載率進行預測,結合不同預測模型的優(yōu)點加強對隨機因素的分析,以此提高預測的準確度。
2剩余負載率計算
在基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享系統(tǒng)中,醫(yī)療數(shù)據(jù)共享即對數(shù)據(jù)庫進行查詢操作,主要與節(jié)點的CPU和內(nèi)存有關;而區(qū)塊鏈中區(qū)塊的同步主要與節(jié)點的網(wǎng)絡帶寬有關??紤]到計算的復雜度以及負載值的準確性,本文選取CPU和內(nèi)存的利用率作為負載狀態(tài)的計算因子。各節(jié)點的資源剩余狀態(tài)L根據(jù)公式(1)計算。
其中,L。為CPU剩余,Lm為內(nèi)存剩余,φ為CPU權重,φ為內(nèi)存權重,且φ+φ=1。各項指標的權重參數(shù)反應不同指標的重要程度。在本文中,φ取0.8,φ取0.2。
系統(tǒng)所有節(jié)點的剩余負載總和為:
則第i臺服務器節(jié)點的剩余負載率為:
3LOF-ARIMA-BP組合模型
針對服務器剩余負載率的傳統(tǒng)預測方法有很多,常見的主要有時間序列線性預測模型和BP神經(jīng)網(wǎng)絡預測模型。
3.1ARIMA模型
ARIMA模型是最廣泛使用的時間序列模型之一。其基本思想是用一定的回歸模型近似的描述隨時間推移形成的數(shù)據(jù)序列,然后檢驗該模型的擬合能力,檢驗成功后再用模型來預測未來值。
ARIMA模型主要采用的是線性模型進行預測,可以預測到下一段時間數(shù)據(jù)的整體走勢和中值,但預測不到突發(fā)情況。即ARIMA模型本質(zhì)上只能捕捉線性關系,對非線性數(shù)據(jù)的處理效果不佳,預測的精度有待進一步提高。
3.2BP神經(jīng)網(wǎng)絡
BP神經(jīng)網(wǎng)絡,由輸入層、一個或多個隱藏層和輸出層組成。BP神經(jīng)網(wǎng)絡的目的是利用網(wǎng)絡的實際輸出和期望輸出之間的誤差值對網(wǎng)絡多層的連接權值和閾值不斷進行調(diào)整,使得誤差達到可以接受的范圍。
BP神經(jīng)網(wǎng)絡是一種有效的非線性建模方法,在處理隨機性、非線性等問題時有很大的優(yōu)勢,可以充分挖掘數(shù)據(jù)背后隱含的非線性關系。但BP神經(jīng)網(wǎng)絡在線性關系的挖掘方面遠不如ARIMA這類傳統(tǒng)的線性技術方法。
3.3ARIMA-BP模型
剩余負載率序列包含線性和非線性時序兩部分,導致單一的預測模型預測精度不高。因此,本文將ARIMA預測模型和BP神經(jīng)網(wǎng)絡兩種方法結合起來,通過兩種不同方法之間的相互補充,提高模型預測剩余負載率的效果。
ARIMA-BP模型預測的步驟是:首先利用ARIMA模型對樣本(假設為P)進行線性部分的預測,預測結果為C,記樣本與預測結果的殘差為e,et=Pr一Cr。然后再利用BP神經(jīng)網(wǎng)絡模型來估計殘差,得到的預測值記為論,最終模型得到的剩余負載率預測結果為在ARIMA-BP模型中,ARIMA模型用于序列線性部分的預測,BP神經(jīng)網(wǎng)絡模型用于對序列非線性部分的殘差進行修正,這兩個模型不僅充分發(fā)揮了模型各自的優(yōu)點,還起到了互補的作用,提高了預測的精度。
3.4LOF-ARIMA-BP組合模型
對于平穩(wěn)期的剩余負載率來說,ARIMA模型的預測準確率已經(jīng)達到了比較高的水平,如果再加上BP神經(jīng)網(wǎng)絡非線性部分的預測分量會使平穩(wěn)期的預測值整體偏大。本文將固定因素影響的樣本點作為原始樣本集,為正常點受隨機因素影響的樣本點作為異常點。則平穩(wěn)期的樣本點屬于正常點,峰值期的樣本點屬于異常點。為了檢測樣本點是否為異常點,引入LOF算法,提出LOF-ARIMA-BP模型。
LOF算法是數(shù)據(jù)挖掘領域一種基于局部密度的k最近鄰方法。當測試數(shù)據(jù)的局部密度與其鄰居的密度相似時,LOF異常因子會比較低,該測試數(shù)據(jù)屬于正常數(shù)據(jù);當測試數(shù)據(jù)的局部密度低于最近鄰居,則LOF異常因子會比較高,那么該測試數(shù)據(jù)就屬于異常數(shù)據(jù)。
LOF-ARIMA-BP模型是通過LOF算法檢測ARIMA模型的預測值,計算預測點的LOF異常系數(shù),然后與預先設定的LOF閾值進行對比。如果異常系數(shù)大于閾值,則該預測值為異常點,最終的預測值為ARIMA-BP模型預測的值;如果異常系數(shù)小于閾值,則該預測值為正常點,最終的預測值直接為ARIMA模型的預測值。
4實驗及分析
實驗所采用的基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享系統(tǒng)由1個負載均衡節(jié)點和2個服務節(jié)點組成。實驗中的區(qū)塊鏈系統(tǒng)是基于Asch鏈構建的一個去中心化應用平臺。系統(tǒng)節(jié)點配置如表1所示。
本實驗主要是比較ARIMA、ARIMA-BP、LOF-ARIMA-BP三個模型對剩余負載率的預測能力。
首先,各節(jié)點通過監(jiān)測器收集自身的CPU和內(nèi)存的使用情況。然后,根據(jù)公式(3)計算剩余負載率并作為預測的原始序列。最后,利用預測模型預測節(jié)點后續(xù)的剩余負載率,為任務分配提供依據(jù)。
4.1實驗評估指標
本實驗的評估指標選用平均絕對百分比誤差(MAPE)評估指標由如下公式計算:
式中y;代表實際值,介代表預測值,n代表在數(shù)據(jù)集的數(shù)據(jù)預測的數(shù)目。MAPE值越低,.就意味著預測模型的擬合程度越高,模型就具有越好的精確度。
4.2實驗過程及參數(shù)
4.2.1實驗步驟
(1)數(shù)據(jù)選取。因系統(tǒng)中查詢?nèi)蝿盏钠骄瓿蓵r間為3s,故監(jiān)測器1s收集一°次節(jié)點的CPU和內(nèi)存的使用情況并根據(jù)公式(3)計算剩余負載率作為原始的時間序列。選取300個時間間隔共5分鐘的數(shù)據(jù),利用這些數(shù)據(jù)預測在未來10s內(nèi)即后續(xù)10個時間間隔的剩余負載率,對比三個模型在剩余負載率預測方面的能力。服務器剩余負載率的時間序列如圖1所示。
(2)采用差分的方法對原數(shù)據(jù)序列進行平穩(wěn)化處理。差分后的時間序列如圖2所示。
(3)構建ARIMA(,d,q)模型。為了防止
模型精度過高造成的模型復雜度過高的問題,本文采用BIC準則進行模型的定階。最終選用的模型為ARIMA(1,1,1)。
(4)BP神經(jīng)網(wǎng)絡修正殘差。計算上一步得到的預測值與真實值的差值為殘差序列。然后通過BP神經(jīng)網(wǎng)絡對殘差進行預測分析并修正。ARIMA(1,1,1)模型的最初預測值與BP神經(jīng)網(wǎng)絡修正后的殘差值的相加為ARIMA-BP模型的預測值。
(5)LOF檢測異常值。使用LOF算法計算ARIMA(1,1,1)預測值的異常系數(shù),正常點采用ARIMA(1,1,1)模型的預測值作為最終預測值,異常點采用ARIMA-BP模型的預測值作為最終預測值。
4.2.2實驗結果分析
圖3為三個模型的預測值與真實值的對比圖。
根據(jù)公式(4)計算各模型的MAPE,如表2所示。
圖3和表2的實驗結果表明本文提出的LOF-ARIMA-BP組合預測模型預測剩余負載率的能力要優(yōu)于ARIMA模型和ARIMA-BP模型。各模型的平均絕對百分比誤差分別從7.92%和6.52%減小到6.01%。
5結束語
組合的預測模型可以優(yōu)勢互補,充分考慮剩余負載率線性和非線性兩部分的因素。當客戶端突增大量查詢請求時,負載均衡器可以利用本文提出的LOF-ARIMA-BP組合模型預測各節(jié)點的剩余負載率,然后根據(jù)區(qū)塊高度和預測值選擇合適的服務器分發(fā)任務,達到負載均衡的目的,從而提高系統(tǒng)資源的利用率。
參考文獻
[1]黃俊飛,劉杰,區(qū)塊鏈技術研究綜述[J].北京郵電大學學報,2018,41(02):1-8.
[2]薛騰飛,傅群超,王樅等?;趨^(qū)塊鏈的醫(yī)療數(shù)據(jù)共享模型研究[J].自動化學報,2017,43(X):1555-1562.
[3]聞靜.基于CPU利用率預測的虛擬機動態(tài)部署方法研究[D].東北大學,2014.
[4]杜軍,郭慧敏,黃路非.基于病案首頁的ARIMA模型及其改進模型的預測對比[J].中國病案,2018,19(09):40-42.
[5]彭潔。云計算環(huán)境下基于預測算法的負載均衡機制研究[D].南昌大學,2016.
[6]Ding S, Su C,Yu J. An optimizingBP neural network algorithmbased on genetic algorithm[J ] .Artificial IntelligenceReview, 2011, 36(2): 153-162.
[7]馮英.基于訪問負載預測的云資源供應策略研究[D].湖南大學,2017.
[8]阿希:一個基于側鏈技術的去中心化應用平臺[EB/0L].[2019-02-20].https://asch-public.oss-cn-beijing.aliyuncs.com/asch.io/Asch-whitepaper-zh.pdf.