駱海霞
(廈門興才職業(yè)技術學院 工學院,福建 廈門 361024)
隨著科技和互聯(lián)網的不斷發(fā)展,Web網絡中的海量數據成為一筆巨大的財富。信息化時代的發(fā)展潮流是利用這些數據對各行各業(yè)的狀態(tài)進行分析實現數據共享。然而數據共享時會導致個人隱私泄露的概率加大[1]。隨著互聯(lián)網技術的高速發(fā)展,網絡在人們生活中呈現爆發(fā)式的增長,Web平臺具有大量的網絡信息資源,這也導致了Web網站的漏洞越來越多[2]。其中,Web前端是實現網站在客戶端能夠正常顯示及交互應用等功能的重要端口。Web前端在應用的過程中將會產生一定的能量損耗。通過能耗感知的方式能夠獲取Web前端是否出現偶發(fā)任務。Web前端的周期性任務在最初開發(fā)時就已經設定好,這些周期性任務所產生的能量損耗屬于正常損耗。而偶發(fā)任務的能量損耗屬于額外損耗。能耗問題在計算機領域是一項重要的衡量指標。為了降低運行過程中的能量損耗,部分Web前端會犧牲一定的客戶數據吞吐量。為了提升Web前端運行的整體性能,對Web前端偶發(fā)任務的能耗進行精準感知,以此提升能源效率。對此,很多研究人員提出了能耗感知方法。
楊傲[3]著眼于數據安全運行及其能耗的問題,提出放置虛擬機的形式來實現偶發(fā)任務的能耗感知。對Web前端的周期性任務進行排序,按照Web前端網頁內的資源大小進行序列編號,請求虛擬機計算迫切值最小的前端任務,將其作為目標能耗的定位,將該目標定位進行二進制化處理,將處理結果作為遺傳算法的初始種群,進行交叉變異操作,計算適應度值,并多次迭代,最終實現運行能耗的感知。孫皓月[4]針對無法獲取網頁節(jié)點的物理坐標位置,能耗感知效果不理想的問題,建立定位模型,將Web前端的周期性任務在模型中進行定位,映射Web前端網頁節(jié)點,并進行非線性優(yōu)化處理,求解能耗感知的對應簇點,設定能耗感知識別的區(qū)域,將感知到的能源損耗信息回傳至數據集,分析得知能耗感知的具體情況。張憶文[5]改善了傳統(tǒng)方法中動態(tài)優(yōu)先級的空閑時間利用率較低的問題,采用固定優(yōu)先級的方法,將不同層級的任務進行集成處理,混合關鍵調度任務,形成共享感知,將空閑的時間進一步利用起來,在周期性任務運行的間隙,監(jiān)測是否在空閑時間里出現偶發(fā)任務,通過能耗感知的方式提高空閑時間的利用率。將偶發(fā)任務能耗感知的任務優(yōu)先級固定在最優(yōu)級別,確保第一時間能夠感知到偶發(fā)任務的能耗。
考慮到上述文獻提出的能耗感知方法存在一定的不足之處,為了滿足現實的Web前端運行監(jiān)控的實際需求,本研究提出基于遞推估計的Web前端偶發(fā)任務能耗感知方法。該方法修正周期性任務的能源損耗信息,采用多項系數遞推估計法估計Web前端偶發(fā)任務的能源損耗,實現更加有效的能耗感知。
統(tǒng)計Web前端運行過程中,所有任務產生的能量損耗。本研究通過計算約束條件與能耗比實現這一過程[6]。Web前端不同類型的任務均滿足于既定的約束條件,如式(1)所示。
(1)
式(1)中,k與l分別表示Web前端任務運行的路徑,m表示Web前端運行中產生的周期性任務,n表示Web前端運行中產生的偶發(fā)任務,q(T)表示運行路徑上的單個任務吞吐量,Q(T)表示該路徑的吞吐量約束條件,q(R)表示運行路徑上的單個任務響應時間,Q(R)表示該路徑的總體響應時間約束條件,q(E)表示運行路徑上的單個任務可靠性,Q(E)表示該路徑的可靠性約束條件。
繼續(xù)計算Web前端任務的能耗比,如式(2)所示[7]。
(2)
式(2)中,ρm+n表示Web前端周期性任務與偶發(fā)任務的總體能耗比,Em表示Web前端周期性任務的總能耗,En表示前端偶發(fā)任務的總能耗,R表示Web前端任務的響應時間。
計算所得的能耗比值作為后續(xù)能耗感知中的常數?;谏鲜鰞身椫笜说挠嬎憬Y果,求解Web前端的任務能耗。構建能耗求解的目標函數,如式(3)所示。
(3)
式(3)中,f表示隨機目標函數,r表示單個路徑的能耗求解最大請求速率,d表示該目標函數的維度。
基于上述函數,Web前端任務能耗求解過程為。
(1)隨機生成d個初始函數值;
(2)計算最大迭代次數[8];
(3)設定求解循環(huán)次數。
步驟(2)中,最大迭代次數的計算如式(4)所示。
f(L)=f(Lt)+1
(4)
式(4)中,L表示請求速率的自變量,t表示單個任務求解時間,Lt表示單個任務的請求速率自變量。
計算結果滿足最大迭代次數后,方可進行步驟(3)。步驟(3)中,求解循環(huán)次數的設定計算,如式(5)所示。
(5)
式(5)中,Zt表示Web前端單個任務能耗求解的初始循環(huán)次數,Zt+1表示最優(yōu)求解循環(huán)次數,Δ表示能耗求解的精度要求。
在本研究中,Δ取值為0.0001[9]。通過多次循環(huán)求解,得出Web前端任務的總體能耗。
在上述Web前端任務能耗計算結果中,估算偶發(fā)任務的能耗占比。根據Web前端任務節(jié)點的總負載,如式(6)所示[10]。
(6)
式(6)中,w表示Web前端任務節(jié)點的總負載,Nm表示周期性任務的靜態(tài)Web前端的任務請求數量,Tm表示周期性任務的響應時間,Nn表示偶發(fā)任務的靜態(tài)Web前端的任務請求數量,Tn表示偶發(fā)任務的響應時間,T表示Web前端總體響應時間。
基于節(jié)點總負載與Web前端任務反饋頻率的相關性,計算處于空閑狀態(tài)時Web前端的能耗值,如式(7)所示。
(7)
式(7)中,EF表示空閑狀態(tài)的能耗值,ε表示Web前端最大任務負載,pN表示偶發(fā)任務出現的頻率。
采用遞推估計估算單個偶發(fā)任務的能耗值。以EF為初始值,進行遞推估計。建立空閑狀態(tài)能耗值與偶發(fā)任務能耗值的遞推關系,如式(8)所示[11]。
(8)
式(8)中,En1表示單個偶發(fā)任務的能耗值,σ2表示遞推估計的初始方差。
根據上述遞推關系,求解Web前端偶發(fā)任務能耗的初始值,即初始方差達到最小時的En1值。自適應賦予遞推估計的加權權重,使估算準確度結果達到最優(yōu),具體調優(yōu)步驟如下所示。
(1)初始化權重。首先,對于初始估計值,可以給予相等的初始權重。
(2)計算預測誤差。利用初始估計值進行預測,然后將預測結果與實際觀測值進行比較,計算預測誤差。
(3)更新權重。根據預測誤差的大小,更新每個估計值的權重。當誤差較大時,增加相應估計值的權重;當誤差較小時,減小相應估計值的權重。
(4)遞推估計。使用更新后的權重重新進行估計,根據權重調整不同估計值的貢獻,以得到更準確的估計結果。
(5)重復迭代步驟。循環(huán)執(zhí)行步驟2至4進行多次迭代,不斷更新權重和遞推估計,直到達到指定的準確度,輸出權重調優(yōu)結果,如式(9)所示[12]。
(9)
式(9)中,En表示權重調優(yōu)結果,即Web前端單個偶發(fā)任務能耗估算值,δ表示遞推估計的加權權重。
在Web前端運行的過程中,周期性任務與偶發(fā)任務的間隔關系并不一致[13]。在相似的運行時間序列上,偶發(fā)任務出現的節(jié)點類型,如圖1所示。
圖1 偶發(fā)任務出現節(jié)點
由圖1可知,灰色矩形塊表示Web前端的周期性任務,箭頭表示偶發(fā)任務與相鄰周期性任務之間的節(jié)點關系。
偶發(fā)任務出現節(jié)點類型,結合上文的單個偶發(fā)任務能耗結果,建立偶發(fā)任務能耗感知任務兼容矩陣,如式(10)所示。
(10)
式(10)中,x表示Web前端偶發(fā)任務的能耗感知節(jié)點,tx表示能耗感知任務兼容矩陣。
采用二進制算法,將建立好的矩陣轉換為可識別感知的二進制矩陣,如式(11)所示[14]。
(11)
式(11)中,tpe表示可感知的任務兼容矩陣。
根據任務兼容矩陣內部的共享關系,將獨立的Web前端偶發(fā)任務進行關聯(lián)[15]。依據此關聯(lián)關系,進行Web前端偶發(fā)任務的能耗感知。
對上述能耗感知任務兼容矩陣進行識別,實現Web前端偶發(fā)任務能耗的感知。確定能耗感知在矩陣中的簇頭。簇頭的確定根據對上述二進制矩陣進行讀取識別,矩陣中的每個數據空間位置,對應一個簇頭位置[16]。計算簇頭上的平均能量,如式(12)所示。
(12)
式(12)中,A表示感知簇頭能量的平均值,M表示簇頭數量,λ表示無法感知的簇頭,f表示簇頭剩余能量。
以簇頭作為能耗感知序列的圓心,以歐式距離為半徑建立Web前端偶發(fā)任務的能耗感知在虛擬空間中的定位,如圖2所示[17]。
圖2 偶發(fā)任務能耗感知示意圖
由圖2可知,感知簇頭所構建的感知空間與Web前端產生偶發(fā)任務的虛擬空間相重合。感知簇頭通過識別任務兼容矩陣中的二進制形式信息,實現能耗的感知。建立互聯(lián)能耗感知集成電路,如圖3所示。
圖3 能耗感知集成電路
由圖3可知,能耗感知集成電路中,在感知端中連接簇頭所構建的感知空間,輸出端連接二進制代碼集成的數據輸出裝置,獲取Web前端偶發(fā)任務能耗感知結果。
為了驗證本研究所提方法的可行性,設計模擬實驗進行驗證,從實驗研究結果驗證所提方法的有效性。
將本研究設計的Web前端偶發(fā)任務能耗感知裝置進行實驗,如圖4所示。
(a)能耗感知元件
由圖4可知,能耗感知裝置與本次模擬實驗的物理機進行連接,測試該物理機的Web前端中,偶發(fā)任務的能耗感知效果。
考慮到實際Web前端運行環(huán)境的多變性,本次實驗采用模擬Web前端存在的偶發(fā)任務的方式來進行。本次實驗對將要用到的數據和參數根據實際生活中Web前端運行狀況進行合理的模擬,以此來保證本次實驗的真實性,確保參考價值。相關物理環(huán)境參數如表1所示。
表1 實驗物理環(huán)境參數
本次實驗結合三種主要的Web前端框架以及應用較少的三個非常見Web前端框架,在運行過程中,偶發(fā)任務的能耗進行感知實驗。兩類Web前端框架如表2所示。
表2 Web前端框架
對上述6種框架類型的Web前端偶發(fā)任務的能耗感知進行實驗。
本次實驗的結果評價指標設定為能耗感知的時延。感知時延直接反映了對Web前端偶發(fā)任務能耗感知的感知速率,能夠有效評價能耗感知方法的優(yōu)劣。對Web前端偶發(fā)任務能耗感知的時延越小,說明該方法的感知效果越好。
利用本次實驗中模擬的Web前端運行數據信息,對運行過程中產生的偶發(fā)任務能耗進行感知。得到Web前端偶發(fā)任務能耗感知結果如表3所示。
表3 Web前端偶發(fā)任務能耗感知結果
如表3所示,本次Web前端偶發(fā)任務能耗感知結果主要表示為在不同Web前端框架中的感知次數。從能耗感知結果可以看出,隨著感知時間的增加,對于不同框架中的偶發(fā)任務能耗感知次數也隨之增加?;谶@一感知結果,可以初步判定本研究所提方法的感知數據較為合理。
為了體現所提方法感知結果的感知時延,分別應用文獻[3]和[4]提出的感知方法進行Web前端偶發(fā)任務能耗感知。以上述6種框架的Web前端作為研究對象,在感知時間為24h的條件下,每間隔三天進行一次感知實驗,共進行十次,最終結果取10次實驗的平均值,得到不同方法的Web前端偶發(fā)任務能耗感知結果,如圖5所示。
圖5 不同方法Web前端偶發(fā)任務能耗感知時延結果
由圖5可知,本文所提方法在6種Web前端框架中的感知時延結果均比較低,均低于0.2s,而其他兩種方法的感知時延結果均高于0.2s。在6種Web前端框架的偶發(fā)任務能耗感知中,本文所提方法的波動區(qū)間很小,僅有0.06s的時延差值,平均感知時延為0.13s,說明本文所提方法在不同框架類型的Web前端偶發(fā)任務能耗感知中,均有較好的感知效果。而其他兩種方法在6種Web前端框架中,對偶發(fā)任務能耗感知時延結果的波動較大。文獻[3]方法對于Backbone.js框架的Web前端偶發(fā)任務能耗感知時延較大,文獻[4]方法對于Miniui框架的Web前端偶發(fā)任務感知時延較大,時延差值區(qū)間分別為0.37s和0.18。從對比仿真實驗的結果可以看出,本文所提方法對Web前端偶發(fā)任務能耗感知時延較小,感知效果良好,具有較高的實踐應用價值。
在Web前端開發(fā)成為Web前端的任務量越來越大后,偶發(fā)任務出現的概率也隨之變大,對偶發(fā)任務的能耗進行感知成為Web前端運維中的重要工作。對此,本研究提出一種基于遞推估計的Web前端偶發(fā)任務能耗感知方法。從實驗結果可以看出,依據所提方法得出的Web前端偶發(fā)任務能耗感知時延較小,表明本文研究內容能夠為Web前端的運維工作提供科學指導。