到服務(wù)組件對服務(wù)環(huán)境(諸如資源和壓力等)的內(nèi)部因素層面上來,從而建立以服務(wù)環(huán) 境硬件資源類型為基本粒度的預(yù)警事件系統(tǒng),與現(xiàn)有基于服務(wù)組件響應(yīng)時(shí)間的SLA約束事 件相比,量化粒度更為精細(xì),這種多維量化的設(shè)計(jì),保證了預(yù)警事件比SLA約束事件具有更 高的精度。
[0078] (4)專一性,該預(yù)警事件是根據(jù)特定環(huán)境中的特定組件的歷史運(yùn)營軌跡挖掘生存 的,故此當(dāng)同一組件在不同環(huán)境,或不同組件在相同環(huán)境等不同場景下,挖掘生成的預(yù)警事 件可能并不一致,也就是說,針對特定環(huán)境下特定組件挖掘生成的預(yù)警事件只能通用于完 全相同的服務(wù)環(huán)境下的同一組件,故其具有專一性。
[0079] 預(yù)警事件由預(yù)警事件名、自優(yōu)化動(dòng)作目的、預(yù)警主體、運(yùn)營環(huán)境、預(yù)警屬性、預(yù)警條 件六個(gè)部分組成。而預(yù)警事件的格式定義為:
[0080] (Forewarning_Name,SelfOptimizing_Type,Cid,Environment_Level, Forewarning_Attribute,Forewarning_Condition) (3)
[0081] 其中,F(xiàn)orewarning_Name,預(yù)警事件標(biāo)識符。SelfOptimizing_Type,自適應(yīng)優(yōu)化預(yù) 警目的,主要含有兩個(gè)內(nèi)容:一是在服務(wù)性能過低不滿足SLA時(shí)提升服務(wù)性能;二是從降低 能耗的角度出發(fā),在滿足SLA的前提下降低服務(wù)性能,主要集中于提升服務(wù)性能的場景中。 Cid,組件編號,即預(yù)警事件對應(yīng)的組件主體。Environment_Level,組件所在的服務(wù)環(huán)境的 綜合信息標(biāo)識符,包括了其所在虛擬機(jī)環(huán)境和物理云集群的環(huán)境信息,在定義中其以標(biāo)識 符的簡單形式表示,但在后續(xù)過程中,其在數(shù)據(jù)表中以多維數(shù)組的形式存在。Forewarning_ Attribute,組件在此事件中評測的關(guān)鍵特征屬性,比如對計(jì)算密集型的組件而言,CPU占用 率將作為其預(yù)警事件的特征屬性,而對于存儲密集型組件而言,磁盤空間將作為其預(yù)警事 件的特征屬性,特別要說明的是,在各服務(wù)組件的試運(yùn)營期,其各組件的特征屬性均可以通 過少量基礎(chǔ)測試獲取。Forewarning_Condition,預(yù)警事件的觸發(fā)條件,通常為特征資源的 預(yù)警門限值。
[0082] 預(yù)警事件是基于約束事件而生成的輔助事件,它的主要目的是在約束事件發(fā)生 前,提前進(jìn)行服務(wù)性能自優(yōu)化,優(yōu)化服務(wù)環(huán)境提升服務(wù)性能,從而達(dá)到預(yù)防約束事件的發(fā) 生,或加快約束事件被觸發(fā)后的系統(tǒng)自適應(yīng)過程的目的。
[0083] 在沒有預(yù)警事件的情況下,結(jié)合SLA中人工約定的約束事件和實(shí)時(shí)監(jiān)測的數(shù)據(jù), 判定當(dāng)前環(huán)境是否需要優(yōu)化,判定結(jié)果將作為是否開啟自優(yōu)化系統(tǒng)的依據(jù)。而當(dāng)預(yù)警事件 被添加至觸發(fā)事件庫后,如圖2所示,先判定是否觸發(fā)約束事件,若觸發(fā)則進(jìn)行服務(wù)性能自 優(yōu)化,若未觸發(fā)約束事件則判定是否觸發(fā)預(yù)警事件,若觸發(fā)則進(jìn)行服務(wù)性能自優(yōu)化,若未觸 發(fā)則不作操作。
[0084] 預(yù)警事件生成主要功能是在對歷史運(yùn)營日志數(shù)據(jù)的挖掘基礎(chǔ)上,根據(jù)挖掘出有效 信息,生成新的預(yù)警事件。在沒有預(yù)警事件或當(dāng)前預(yù)警事件并不完備的情況下,隨著服務(wù)負(fù) 載的增加,服務(wù)組件的服務(wù)性能也將隨之下降,當(dāng)服務(wù)響應(yīng)時(shí)間超出SLA約束時(shí),SLA約束 事件將會被觸發(fā),從而啟動(dòng)服務(wù)組件的性能自適應(yīng)機(jī)制,優(yōu)化服務(wù)性能,這過程中的所有數(shù) 據(jù)將被記錄在系統(tǒng)運(yùn)營日志中。當(dāng)這部分?jǐn)?shù)據(jù)被挖掘出來后,依據(jù)這些信息生成該組件對 應(yīng)環(huán)境下的預(yù)警事件,并將其存放至觸發(fā)事件庫中。
[0085] 現(xiàn)有的組件服務(wù)系統(tǒng)通常分為有調(diào)整策略和無調(diào)整策略兩種。無調(diào)整策略的服務(wù) 性能優(yōu)化在面臨服務(wù)壓力過大時(shí)一般會出現(xiàn)兩種情況,一種情況是隨著壓力增大服務(wù)組件 發(fā)生崩潰現(xiàn)象,另一種情況是是隨著負(fù)載壓力的減緩服務(wù)組件自動(dòng)回歸至SLA約束內(nèi),本 實(shí)施方式主要針對有調(diào)整策略的組件服務(wù)系統(tǒng)。
[0086] 預(yù)警事件的生成基礎(chǔ)是SLA約束事件被觸發(fā),相同環(huán)境下的不同組件的SLA約束 事件不同,相同組件在不同環(huán)境下的SLA約束事件也不同,而當(dāng)前環(huán)境下具體采用哪一套 觸發(fā)事件集,則需依據(jù)當(dāng)組件部署環(huán)境的實(shí)際信息去觸發(fā)事件庫中提取。值得注意的是, 一般組件部署情況發(fā)生較大改變時(shí),當(dāng)前正在采用的觸發(fā)事件集中的約束事件一般不做變 化,但是預(yù)警事件部分通常需要整體重置或替換。
[0087] 當(dāng)預(yù)警事件被觸發(fā)后,其自適應(yīng)過程仍需要一定的時(shí)間,在這個(gè)過程中,有可能會 觸發(fā)其他預(yù)警事件或者約束事件。在本方法中采用同級事件優(yōu)先覆蓋原則,即先發(fā)生的事 件覆蓋后發(fā)生的事件,包含兩層含義:
[0088] (1)在自適應(yīng)調(diào)整中,同一虛擬機(jī)不同組件先后觸發(fā)事件,先處理首次觸發(fā)事件所 啟動(dòng)的自適應(yīng)決策,忽略該階段中所有后發(fā)生的事件,直至此次自適應(yīng)過程結(jié)束,若其仍有 事件被觸發(fā),則繼續(xù)重復(fù)上述步驟。
[0089] (2)在自適應(yīng)調(diào)整過程中,同一虛擬機(jī)的同一組件先后觸發(fā)事件,先處理首次觸發(fā) 事件所啟動(dòng)的自適應(yīng)決策,忽略該階段中所有后發(fā)生的事件,直至此次過程結(jié)束,若其仍有 事件被觸發(fā),則繼續(xù)重復(fù)上述步驟。
[0090] 通常情況下服務(wù)組件可以化作計(jì)算密集型、存儲密集型和網(wǎng)絡(luò)密集型三種類型, 他們分別對CPU、磁盤和網(wǎng)絡(luò)帶寬這三種硬件資源較為敏感。當(dāng)增加或減少某種服務(wù)資源可 以明顯影響到該組件的服務(wù)性能時(shí),將該資源類型作為該組件的特征屬性。組件的特征屬 性可以由開發(fā)人員給出,也可以在試運(yùn)營期間通過基準(zhǔn)測試測出,在本實(shí)施方式中組件的 特征屬性存放于特征屬性集Ca中。
[0091] 生成預(yù)警事件的流程如圖3所示,具體如下:
[0092] 步驟2-2-2-1 :預(yù)警事件數(shù)據(jù)定位與采集:
[0093] 觸發(fā)約束事件的某時(shí)間點(diǎn)Ts的采集數(shù)據(jù)超過設(shè)定閾值且距離前次自優(yōu)化結(jié)束的 時(shí)間點(diǎn)Te時(shí)間間隔h大于N個(gè)監(jiān)測周期,則時(shí)間點(diǎn)Ts為預(yù)警事件觸發(fā)節(jié)點(diǎn);
[0094] 采集的數(shù)據(jù)包括物理機(jī)群數(shù)據(jù)、虛擬機(jī)數(shù)據(jù)、服務(wù)組件數(shù)據(jù);
[0095] 物理機(jī)群數(shù)據(jù)、虛擬機(jī)數(shù)據(jù)均包括CPU核數(shù)、內(nèi)存大小、帶寬、服務(wù)組件數(shù)據(jù)、可用 磁盤大?。?br>[0096] 服務(wù)組件數(shù)據(jù)包括CPU占用率、內(nèi)存占用率、并發(fā)量、響應(yīng)時(shí)間、I/O設(shè)備調(diào)用頻 率;
[0097] 預(yù)警事件的生成機(jī)制是在約束事件被激活時(shí)開啟的,故此為了保證當(dāng)前分析數(shù)據(jù) 的有效性,數(shù)據(jù)采集域的確立是非常關(guān)鍵的,采集域示意圖如圖4所示。為了保證采集的數(shù) 據(jù)的有效性,規(guī)定滿足以下條件時(shí),該觸發(fā)點(diǎn)Ts附近的數(shù)據(jù)域?yàn)橛行?shù)據(jù)域:當(dāng)前被觸發(fā) 的Ts與上一Te之間的時(shí)間間隔h應(yīng)大于N個(gè)監(jiān)測周期。
[0098] -般情況下,當(dāng)前觸發(fā)節(jié)點(diǎn)Ts前段的自適應(yīng)優(yōu)化結(jié)束后,服務(wù)性能應(yīng)回歸至正常 工作范圍,并提供持續(xù)M個(gè)監(jiān)測周期的穩(wěn)定服務(wù)。若M過小,則意味著此階段的自適應(yīng)優(yōu)化 的質(zhì)量不高,致使系統(tǒng)頻繁開啟自適應(yīng)優(yōu)化模塊,適當(dāng)調(diào)節(jié)參數(shù)N,可以保證系統(tǒng)能夠順利 采集到高質(zhì)量自適應(yīng)優(yōu)化調(diào)整期的數(shù)據(jù)域。若Ts之前沒有開啟過自優(yōu)化過程,則默認(rèn)為滿 足該條件。
[0099]當(dāng)前觸發(fā)節(jié)點(diǎn)被判為有效Ts節(jié)點(diǎn)后,以其為參考點(diǎn),提取其附近域的數(shù)據(jù)信息, 信息域的半徑視具體組件和其部署環(huán)境而定,并存入對應(yīng)分析表中,在圖4中,該階段的分 析表為C_Data_T2。需要注意的是,自適應(yīng)過程中的數(shù)據(jù)在本文的后續(xù)分析的有效信息量相 對較小,故此,tb遠(yuǎn)小于ta。表C_Data_T2 -般包括物理機(jī)群、組件所在虛擬機(jī)和組件三層 通用監(jiān)測信息,部分監(jiān)測指標(biāo)如表1所示。
[0100] 表1觸發(fā)事件生成模型數(shù)據(jù)采集參數(shù)表
[0101]
[0102] 步驟2-2-2-2 :預(yù)警事件數(shù)據(jù)整合:將Ts至Te之間的M各監(jiān)測周期內(nèi)采集的數(shù)據(jù) C_Data_T2分別按組件ID分組,隨后再將各分組不同監(jiān)測周期內(nèi)的數(shù)據(jù)按資源類型分組, 并刪去非特征屬性的干擾數(shù)據(jù);
[0103] 特征屬性數(shù)據(jù)包括內(nèi)存占用率、內(nèi)存使用率和組件調(diào)用率;
[0104] 刪去非特征屬性的干擾數(shù)據(jù):計(jì)算在Ts之后的特征屬性值得均值Vn,將各時(shí)間段 內(nèi)與均值Vn偏差大于n%的數(shù)據(jù)作為噪點(diǎn)數(shù)據(jù)去除