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