黨偉超,李 濤,白尚旺,高改梅,劉春霞
(太原科技大學計算機科學與技術學院,太原 030024)
隨著時代的發(fā)展、科技水平的顯著提高,各個領域對計算機以及Web軟件系統(tǒng)的依賴日益增強;尤其在金融、軍事等領域,人們對軟件系統(tǒng)的可靠性要求越來越高。然而長時間不間斷運行的系統(tǒng)存在著軟件老化現象,系統(tǒng)的可靠性受到嚴重威脅,易造成無法估量的損失。
軟件老化是指軟件在不間斷運行過程中,由于內存的大量占用或泄露,文件鎖得不到及時釋放,會出現性能逐漸衰退的現象[1]。Huang等[2]提出了軟件抗衰的方法以減少軟件因老化帶來的損失。抗衰策略研究是確定恰當的抗衰時刻,對軟件系統(tǒng)執(zhí)行合理的抗衰操作[3]。為了確定軟件抗衰操作的時刻,主要方法是對系統(tǒng)資源消耗的情況進行分析及預測[4-6]。由于各類軟件系統(tǒng)執(zhí)行抗衰操作都需要一定時長的準備時間,用上述方法指導抗衰決策容易造成欠維修或過維修的問題。如果通過預測軟件剩余使用壽命來推導軟件最優(yōu)抗衰時刻,將會減少抗衰決策判斷誤差。
軟件剩余使用壽命(Remaining Useful Life,RUL)指軟件以當前的運行條件,能夠實現其正常功能的剩余時間。目前,在預測剩余壽命研究領域,針對退化過程比較復雜的系統(tǒng),主流的研究方法是基于數據驅動的機器學習方法。常用的數據驅動方法有卡爾曼濾波、支持向量機和神經網絡等。于震梁等[7]用支持向量機和非線性卡爾曼濾波對機械零件的剩余壽命進行了預測。當樣本數量很大時,支持向量機需要耗費大量的內存和時間,難以實施[8]。卡爾曼濾波技術利用相應的領域知識來調整參數并選擇對應的殘差模型[9],需要明確的領域知識,適用性不高。
近年來,由于深度學習其在非線性映射特征提取方面的優(yōu)異性能,在故障診斷和壽命預測領域受到了廣泛關注。深度學習中的反向傳播(Back Propagation,BP)神經網絡、循環(huán)神經網絡(Recurrent Neural Network,RNN)在剩余壽命預測領域得到廣泛的應用[10-12]。長短期記憶(Long Short-Term Memory,LSTM)網絡作為一種改進后的RNN網絡,能有效學習時序性數據的長期依賴關系,成為剩余壽命的熱點技術之一[13-14];然而,單一LSTM容易忽略不同特征對輸出結果的不同影響[15]。一些學者在機器閱讀、情感分析、圖像描述等領域嘗試使用融合注意力機制和神經網絡的方法[16-18]。Luong等[19]在編碼和解碼網絡中融入了注意力機制,可以對不同信息特征值進行區(qū)分學習,提升了循環(huán)神經網絡的預測性能。
基于上述分析,本文提出了一種基于自注意力長短期記憶(Self-Attention-Long Short-Term Memory,Self-Attention-LSTM)網絡的Web軟件系統(tǒng)實時剩余壽命預測模型,該模型充分考慮了Web軟件系統(tǒng)資源消耗的時序特性,在LSTM循環(huán)神經網絡基礎上引入自注意力機制,為不同時刻LSTM隱含層的輸出結果分配不同的注意力系數,更加全面地對局部剩余壽命信息特征的重要程度進行區(qū)分學習,提高了Web軟件系統(tǒng)剩余壽命預測的準確度。
LSTM是一種改進之后的循環(huán)神經網絡,可以解決RNN感知能力下降的問題,與RNN相比,LSTM在其基礎上增加了一個細胞狀態(tài)(cell state)。一個LSTM單元通過三個門控制細胞狀態(tài),這三個門分別為遺忘門、輸入門和輸出門。如圖1所示。

圖1 LSTM單元結構Fig.1 LSTM unit structure
門控循環(huán)單元(Gate Recurrent Unit,GRU)是LSTM網絡的一種變體,它組合遺忘門和輸入門到一個單獨的“更新門”中,合并細胞狀態(tài)和隱含層狀態(tài),沒有輸出門,增加重置門,如圖2所示。

圖2 GRU單元結構Fig.2 GRU unit structure



自注意力機制是對注意力機制的一種改進,其目的是捕捉數據或特征的內部相關性,從而提高目標輸出的預測準確度。本文將其與LSTM網絡結合,建模特征向量的內部相關性。自注意力機制的結構如圖3所示。

圖3 自注意力機制結構Fig.3 Structureof self-attention mechanism
具體來說,將LSTM層在第t個時間步的輸出Ht={ht,1,ht,2,…,ht,i,…,ht,w}T∈Rw×m作為特征向量輸入到自注意力機制中。其中,ht,i∈Rm(為簡化表示,在圖3中表示為hi),w為時間步長,m為隱含層單元數。在自注意力機制中,首先,特征值hi分別與目標特征值hj進行對比,利用f(hi,hj)函數得到特征間的相似度;然后,用softmax函數對該相似度進行歸一化,該值越大表明該特征值對目標特征值的影響越大,反之則影響越小;最后,將該相似度權重與原輸入進行加權求和以得到最后的輸出特征h′i。具體計算公式如下:

結合自注意力機制的LSTM剩余壽命預測模型由輸入層、隱含層、自注意力層、池化層、全連接層、輸出層構成。如圖4所示。

圖4 Self-Attention-LSTM剩余使用壽命預測模型Fig.4 Self-Attention-LSTM RUL prediction model
1)收集樣本并進行標準化處理。
每秒收集一次Web軟件系統(tǒng)運行過程內存使用量數據,假設第n秒發(fā)生了內存溢出(Out Of Memory,OOM)故障,則一共收集了n秒的系統(tǒng)運行數據。OOM是指當系統(tǒng)因為沒有足夠的內存為對象分配空間而產生內存溢出故障。將系統(tǒng)在第i秒的內存使用量表示為mi,則系統(tǒng)在i秒的剩余壽命可表示為r=n-i。假設系統(tǒng)運行了k秒以后才進入系統(tǒng)老化狀態(tài),則每次運行可得到如下采樣數據。

標 準 化 處 理 后 的 樣 本 表 示 為(M′,R′)={(m′i,r′i),i=1,2,…,n},其中m′i和ri′的定義如式(5)所示:

將序列M′以時間步長w分割為n-w個長度為w的時間序列,用X表示,對應的實際壽命用Y表示,輸入網絡的數據如式(6)所示:

2)LSTM層。
將X={X1,X2,…,Xi,…,Xn-w}輸入LSTM層,經過LSTM隱含層得到的網絡輸出表示為式(7)。其中Ci-1和Hi-1分別表示上一時刻LSTM網絡的狀態(tài)以及隱含層的輸出。

3)自注意力層。
將經過LSTM層的得到的隱含層特征序列輸入自注意力層中,t時刻LSTM輸出的特征表示為Ht={ht,1,ht,2,…,ht,i,…,ht,w}T∈Rw×m,ht,i∈Rw,w為時間步長,m為LSTM隱含層單元數 。 經 式(8)計 算 ,得 到 新 的 特 征H′t={h′t,1,h′t,2,…,h′t,i,…,h′t,w}T∈Rw×m。

4)池化層和全連接層。

5)誤差反向傳播。


6)評價指標。


除了RMSE和MAE之外,本文引入另外兩個相對評價指標:指數評價函數(Scoring Function,SF)和相對準確率(Accuracy)。預測壽命相對剩余壽命偏小和偏大,分別設置不同的影響因子,分別記做a1和a2,且a1>a2,這是因為比起Web失效后采取抗衰操作,在失效之前執(zhí)行抗衰操作帶來較小的損失。本文中影響因子設為a1=150,a2=50。

研究表明,軟件系統(tǒng)內存的泄露會引起內存的耗盡,導致系統(tǒng)宕機,軟件內存的使用情況直接反映了系統(tǒng)的健康狀況。因此,本文通過Web軟件系統(tǒng)的內存使用情況來對Web軟件系統(tǒng)的剩余壽命進行預測。通過檢測Web軟件系統(tǒng)的健康狀況,收集系統(tǒng)使用內存的數據,建立一個基于Self-Attention-LSTM的Web軟件系統(tǒng)的實時壽命預測模型,以此來預測軟件系統(tǒng)的剩余使用壽命。
由于Web軟件系統(tǒng)開始出現老化后并不會立刻失效,需要耗費很長時間才會發(fā)現故障。受Yin等[20]提出的系統(tǒng)化方法的啟發(fā),本文將工業(yè)領域已成熟應用的加速測試理論引入到軟件領域,在Web軟件系統(tǒng)中采用加速內存泄露的方法收集可以反映軟件老化情況的指標數據。
為了收集反映Web軟件老化情況的使用內存數據,搭建了一個符合多層TPC-W基準測試規(guī)范的電子商務網站系統(tǒng)。該軟件系統(tǒng)由一個Web服務器、一個數據庫服務器和一組模擬的客戶端組成。該系統(tǒng)模擬了一個在線售書網站,包括主頁、暢銷頁面、新書頁面、搜索頁面、購物車、和訂單狀態(tài)等不同類型的頁面。客戶端模擬瀏覽器并發(fā)訪問Web服務器。Web服務器Tomcat關于JVM的內存配置參數如表1所示。

表1 Tomcat關于JVM內存配置信息Tab.1 JVM memory configuration information in Tomcat
收集了四組在不同服務端的內存泄漏強度(Leakage)和客戶端并發(fā)數(Concurrency)參數情況下發(fā)生OOM故障的數據。表2列出了4組實驗的具體參數。當發(fā)生OOM故障時,記當前時刻為T,該時刻系統(tǒng)剩余壽命r=0。實驗過程中每1秒收集一次JVM的內存使用量,采集到了4組樣本,樣本個數分別為10 929,8 202,14 399,9 635。圖5表示了4組實驗JVM內存使用情況變化趨勢。

表2 四次實驗運行參數Tab.2 Operation parameters of four experiments

圖5 JVM內存使用情況變化趨勢Fig.5 Trend of JVM memory usage
實驗環(huán)境為i5-3230 M(2.27 GHz)CPU、4 GB內存和Microsoft Windows 7操作系統(tǒng)。在Jetbrains PyCharm集成開發(fā)環(huán)境下,使用python2.6作為編程語言,anaconda作為解釋器,基于Keras框架搭建并訓練壽命預測模型。
1)尋找最佳的隱含層單元數量。
用Data1做訓練集,Data2做測試集,RMSprop(Root Mean Square propagation)算法對模型進行優(yōu)化,MAE作為評價指標。表3為采用不同隱含層單元數訓練網絡時在訓練集和測試集上的MAE值。從表中可以看出,隱含層單元數為120時,MAE值最小,預測精度最高。

表3 不同隱含層單元數量時的MAE對比Tab.3 MAE comparison under different hidden layer units
2)尋找最佳優(yōu)化算法。
隱含層單元數為120,Data1做訓練集,Data2做測試集,不同的優(yōu)化算法訓練模型,MAE作為評價指標。對比不同算法在訓練集和測試集上MAE的大小。結果如表4所示,采用Adam算法的模型在訓練集和測試集上的評價指標值最小,預測精度最高。

表4 不同優(yōu)化算法評價指標MAE對比Tab.4 MAE comparison of different optimization algorithms
3)尋找最佳隱含層激活函數。
圖6采用隱含層單元為120,Adam算法對模型進行優(yōu)化,為確定該模型隱含層最佳激活函數,用四種常見激活函數(relu,tanh,sigmoid,softmax)進行了對比實驗。實驗結果如圖6所示,從表中看出采用relu和tanh激活函數的擬合效果相對較好。表5展示了不同激活函數在訓練集和測試集上的MAE的大小,可以看出采用relu激活函數時MAE最小,說明采用relu激活函數的預測精度最高。

表5 不同激活函數MAE對比Tab.5 MAE comparison of different activation functions

圖6 不同激活函數的剩余使用壽命預測結果Fig.6 RUL prediction results of different activation functions
4)預測Data2剩余使用壽命。
采用表6列出的實驗參數訓練網絡,由于模型中含有多個網絡層以及大量的參數,為防止產生過擬合的現象,采用Dropout在每輪權重更新時隨機選擇隱去一些節(jié)點,從而限制模型單元之間的協(xié)同更新[21]。

表6 Self-Attention-LSTM剩余使用壽命預測模型的訓練參數Tab.6 Training parametersof Self-Attention-LSTM RUL prediction model
該模型使用的Dropout的參數值為0.5,即含有Dropout的網絡層在訓練過程中,會有50%的節(jié)點被拋棄。用Data2做測試集,模型的預測結果如圖7所示,可以看出,隨著時間的推移擬合效果越來越好,而且預測值大部分小于真實值,為采取抗衰決策提供了時間保障。

圖7 Self-Attention-LSTM模型的剩余使用壽命預測結果(Data2)Fig.7 RUL prediction results of Self-Attention-LSTMmodel(Data2)
為驗證Self-Attention-LSTM壽命預測模型的有效性,本文采用表6的模型參數在測試集數據進行了三組實驗,并與傳統(tǒng)的BP網絡以及常規(guī)的循環(huán)神經網絡(LSTM、GRU、RNN)做了對比,實驗結果如圖8所示。從圖中可以看出,三組實驗中,Self-Attention-LSTM預測模型與真實壽命曲線的擬合效果最好,說明該模型的泛化能力最好。為了進一步地比較準確度,表7列出了各網絡模型不同評價指標對比,表中PT(Prediciton Time)表示單位樣本預測所需要的時間,單位為ms,從表中可以看出,PT值較小,滿足實時預測要求。Self-Attention-LSTM壽命預測模型在三組實驗里的MSE、RMSE、SF都是最低,Accuracy最高,說明該壽命預測相較于BP網絡和常規(guī)循環(huán)神經網絡而言,預測精度最高。

圖8 不同模型的剩余使用壽命預測結果對比Fig.8 Comparison of RUL prediction results of different models

表7 不同預測模型評價指標對比Tab.7 Comparison of evaluation indexes of different prediction models
為了能夠實時準確地對Web軟件系統(tǒng)的剩余壽命進行預測,本文以LSTM循環(huán)神經網絡為基礎,考慮了特征間的依賴關系,結合注意力機制,構建了一種Self-Attention-LSTM網絡的Web軟件系統(tǒng)實時剩余壽命預測模型。實驗結果表明,該預測模型能實時預測Web服務器剩余使用壽命,與傳統(tǒng)的BP神經網絡以及常規(guī)的循環(huán)神經網絡相比,其預測精度高、泛化能力好、誤差較小。基于Self-Attention-LSTM網絡的剩余壽命預測方法是一種端對端的預測方法,該方法為優(yōu)化軟件系統(tǒng)抗衰決策提供了技術支撐。在未來工作中,將嘗試利用內存使用量、響應時間、吞吐量等多維度信息來預測剩余壽命。