国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)K-means算法的指標(biāo)閾值告警方法研究

2023-01-11 15:24:40唐海榮韓少聰
現(xiàn)代計(jì)算機(jī) 2022年20期
關(guān)鍵詞:平方和使用率螢火蟲

許 健,王 琪,唐海榮,韓少聰,張 弛,陳 梁,倪 洋

(南京南瑞信息通信科技有限公司,南京 211106)

0 引言

電網(wǎng)企業(yè)信息化運(yùn)維系統(tǒng)在日益復(fù)雜的運(yùn)維活動(dòng)中扮演著重要角色,提升了信息運(yùn)維工作水平和工作效率。其組件化的中臺(tái)設(shè)計(jì)可以有效降低系統(tǒng)耦合,提高基礎(chǔ)服務(wù)可復(fù)用性。被管IT資源可按以下分類:主機(jī)、數(shù)據(jù)庫(kù)、中間件、網(wǎng)絡(luò)、安全、存儲(chǔ)、虛擬化、服務(wù)、應(yīng)用、機(jī)房環(huán)境等。各類資源下具有不同的指標(biāo),指標(biāo)是對(duì)資源性能的數(shù)據(jù)描述或狀態(tài)描述。運(yùn)維人員在監(jiān)測(cè)某些指標(biāo)的異常狀態(tài)時(shí)首先需要配置相應(yīng)的閾值規(guī)則,當(dāng)采集的指標(biāo)數(shù)據(jù)不在閾值范圍內(nèi)則判定為區(qū)間越界,需要及時(shí)產(chǎn)生告警并通知給運(yùn)維人員。

面對(duì)大量復(fù)雜多樣的指標(biāo),運(yùn)維人員手動(dòng)錄入閾值規(guī)則往往依托經(jīng)驗(yàn),一定程度上影響著告警準(zhǔn)確性,并且重復(fù)勞動(dòng)增加了運(yùn)維負(fù)擔(dān)。當(dāng)業(yè)務(wù)需求變化時(shí),運(yùn)維人員需要重新編輯之前的閾值規(guī)則,維護(hù)成本較高,閾值規(guī)則的靈活性較差。針對(duì)這些痛點(diǎn),本文轉(zhuǎn)變靜態(tài)閾值的配置思路,引入簡(jiǎn)單高效的K-means聚類分析方法,充分利用指標(biāo)歷史數(shù)據(jù)分析產(chǎn)生各時(shí)段動(dòng)態(tài)閾值的區(qū)間上下限,降低人工參與度,提高閾值告警規(guī)則配置的靈活性和告警的準(zhǔn)確性。傳統(tǒng)K-means算法聚類數(shù)和中心點(diǎn)的選取缺乏明確標(biāo)準(zhǔn)定義[1],改進(jìn)隨機(jī)選取問題來優(yōu)化算法聚類效果。

1 指標(biāo)閾值告警

1.1 采集監(jiān)測(cè)層次關(guān)系

電網(wǎng)企業(yè)信息化運(yùn)維系統(tǒng)監(jiān)測(cè)的資源指標(biāo)數(shù)據(jù)由采集控制組件提供。采集控制組件基于各類采集插件,實(shí)現(xiàn)支持多級(jí)復(fù)雜主、子資源結(jié)構(gòu)關(guān)系的安全設(shè)備、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)庫(kù)、虛擬化及大數(shù)據(jù)部分類型的組件數(shù)據(jù)采集。資源監(jiān)測(cè)組件基于微服務(wù)架構(gòu)接口規(guī)范為上層應(yīng)用提供主機(jī)、數(shù)據(jù)庫(kù)、中間件、網(wǎng)絡(luò)設(shè)備、安全設(shè)備、存儲(chǔ)設(shè)備及云平臺(tái)等資源的狀態(tài)監(jiān)測(cè)數(shù)據(jù)、性能數(shù)據(jù)及告警數(shù)據(jù)服務(wù)。采集監(jiān)測(cè)的層次關(guān)系如圖1所示。

圖1中的異常告警及通知依賴于運(yùn)維人員配置的指標(biāo)閾值,實(shí)時(shí)采集的指標(biāo)值存儲(chǔ)到消息總線上,兩者進(jìn)行閾值規(guī)則匹配。比如CPU使用率大于95%時(shí)則產(chǎn)生告警等級(jí)為嚴(yán)重的告警,并對(duì)告警信息進(jìn)行通知分發(fā)。

圖1 采集監(jiān)測(cè)層次關(guān)系

1.2 傳統(tǒng)閾值告警配置流程

電網(wǎng)企業(yè)信息化運(yùn)維系統(tǒng)在日常運(yùn)維中需要由人工來錄入指標(biāo)的閾值告警規(guī)則,配置過程中需要進(jìn)行較多的頁(yè)面交互,主要流程如下:

(1)在系統(tǒng)菜單中進(jìn)入告警策略管理頁(yè)面,在主資源類型下新增相應(yīng)的告警策略,主資源類型包括服務(wù)器類、數(shù)據(jù)庫(kù)類、中間件類、網(wǎng)絡(luò)設(shè)備、鏈路、安全設(shè)備、云平臺(tái)等。

(2)點(diǎn)擊告警策略中的觸發(fā)條件藍(lán)色數(shù)字下鉆到該策略的資源與指標(biāo)關(guān)聯(lián)列表頁(yè)面。主資源下包含許多子資源,不同主子資源又包含豐富的指標(biāo)。

(3)點(diǎn)擊需要監(jiān)測(cè)的指標(biāo)中的觸發(fā)規(guī)則藍(lán)色數(shù)字下鉆到該指標(biāo)的觸發(fā)規(guī)則配置頁(yè)面。配置閾值告警規(guī)則,填寫閾值上下限、持續(xù)時(shí)間、告警級(jí)別等表單信息,確認(rèn)保存。

從整個(gè)流程來看,面對(duì)豐富的監(jiān)測(cè)指標(biāo),一是交互多重復(fù)工作量大,二是對(duì)運(yùn)維人員的經(jīng)驗(yàn)有一定要求。且當(dāng)業(yè)務(wù)需求變化時(shí),還需回到原表單處重新編輯閾值告警規(guī)則,維護(hù)成本較高,欠缺靈活性。

1.3 聚類分析指標(biāo)閾值告警

聚類分析屬于無監(jiān)督學(xué)習(xí),常見的分類主要有基于層次的聚類算法、基于劃分的聚類算法、基于密度的聚類算法、基于網(wǎng)絡(luò)的聚類算法和基于模型的聚類算法[2]。

針對(duì)上節(jié)提到的問題,轉(zhuǎn)變靜態(tài)閾值的配置思路,從運(yùn)維現(xiàn)場(chǎng)每五分鐘采集一次指標(biāo)數(shù)據(jù)來看,有豐富的指標(biāo)歷史數(shù)據(jù)可供使用,便可聚類分析出各時(shí)段指標(biāo)的動(dòng)態(tài)閾值上下限,降低人工參與度,提高閾值告警規(guī)則配置的靈活性和告警的準(zhǔn)確性。

2 改進(jìn)K-means算法

2.1 確定最佳聚類數(shù)的方法

2.1.1 手肘法

手肘法通過樣本聚類總誤差平方和SSE這一指標(biāo)來表示樣本的聚合程度,其值越小表示類間樣本越緊湊。SSE的計(jì)算公式為

其中,Ci表示第i個(gè)類,n表示Ci中的樣本點(diǎn),mi是Ci中所有樣本的均值。每個(gè)類的聚合程度會(huì)隨著聚類數(shù)k的增大而逐漸提高,樣本劃分越來越精細(xì),誤差平方和SSE也會(huì)逐漸變小。在聚類初期,k小于真實(shí)聚類數(shù),k的增大會(huì)迅速增加每個(gè)類的聚合程度,SSE的下降幅度也會(huì)很大;而當(dāng)k到達(dá)真實(shí)聚類數(shù)時(shí),再增大k時(shí)樣本聚合程度改變不會(huì)很大,SSE的下降幅度隨著k值的繼續(xù)增大而趨于平緩,即SSE和k的關(guān)系圖是一個(gè)手肘的形狀,而這個(gè)肘部對(duì)應(yīng)的k值就是數(shù)據(jù)的真實(shí)聚類數(shù)。然而,SSE加和的方式會(huì)使得某些分類效果較差的類計(jì)算所得的類間誤差平方和被聚類效果較好的類間誤差平方和中和[3],本文進(jìn)一步結(jié)合統(tǒng)計(jì)學(xué)中的Gap Statistic方法來確定最佳聚類數(shù)。

2.1.2 Gap Statistic法

Gap Statistic的主要思想是計(jì)算每一類里各樣本兩兩之間歐式距離的平方和,并將其與構(gòu)建的參考零均值均勻分布所得的聚類結(jié)果相比較,從而確定數(shù)據(jù)集的最佳聚類數(shù)目。當(dāng)聚類數(shù)k為最優(yōu)值時(shí),Gap Statistic這個(gè)統(tǒng)計(jì)量達(dá)到最大值,也意味著此時(shí)的聚類結(jié)果與零均值均勻分布產(chǎn)生的數(shù)據(jù)的聚類結(jié)果差別最大。算法流程分為以下三步:

第1步:改變聚類數(shù)量k從1到kmax,計(jì)算不同k值對(duì)應(yīng)的類內(nèi)偏離和wk,計(jì)算公式為

其中Cr表示聚類得到的第r類,nr表示樣本個(gè)數(shù),表示該類中所有樣本兩兩之間的距離和。

第2步:構(gòu)建B個(gè)參考零均值均勻分布數(shù)據(jù),改變聚類數(shù)量k從1到kmax,計(jì)算不同k值對(duì)應(yīng)的類內(nèi)偏離和wkb,b=1,2,…,B,k=1, 2, …,kmax。

第3步:對(duì)前兩步的類內(nèi)偏離和取對(duì)數(shù)處理,二者比較后的差值作為Gap(k),計(jì)算公式為

2.2 確定初始聚類中心點(diǎn)的方法

傳統(tǒng)K-means算法在開始運(yùn)行時(shí)初始聚類中心的選取是隨機(jī)的[4],對(duì)聚類結(jié)果的影響較大。為了避免聚類中心陷入局部最優(yōu)解,仿生智能優(yōu)化算法的出現(xiàn)提高了K-means算法的全局搜索能力,比較流行的算法有螢火蟲算法、森林優(yōu)化算法、遺傳算法等[5]。本文采用變步長(zhǎng)螢火蟲算法的最優(yōu)解作為初始聚類中心點(diǎn)。

2.2.1 螢火蟲算法

螢火蟲算法是一種基于群體的隨機(jī)搜索算法[6]。把空間各點(diǎn)看成螢火蟲,利用發(fā)光弱的螢火蟲受發(fā)光強(qiáng)的螢火蟲吸引的特點(diǎn)進(jìn)行位置迭代,從而完成尋優(yōu)過程。尋優(yōu)過程和螢火蟲的相對(duì)亮度和相互吸引度有關(guān)。相對(duì)亮度用式(4)表示,相互吸引度用式(5)表示:

式(4)、式(5)中的γ為光吸收因子,一般情況下γ∈ [0.01,100][7],r為兩只螢火蟲間的歐式距離,I0表示r為0時(shí)的亮度,β0表示r為0時(shí)的吸引度,也即最大吸引度。發(fā)光越亮代表其位置越好,最亮螢火蟲即代表函數(shù)的最優(yōu)解。發(fā)光越亮的螢火蟲對(duì)周圍螢火蟲的吸引度越高,同時(shí)與距離成反比,距離越大吸引度越小,若發(fā)光亮度一樣,則螢火蟲做隨機(jī)運(yùn)動(dòng)進(jìn)行位置更新,假設(shè)Xj比Xi吸引度高,Xi位置更新計(jì)算公式為

其中α為步長(zhǎng)因子,rand()為[-0.5,0.5]區(qū)間范圍內(nèi)的隨機(jī)擾動(dòng)[8]。

算法流程如下:

第1步:初始化算法參數(shù):螢火蟲數(shù)量、光吸收因子、最大吸引度、步長(zhǎng)因子和最大迭代次數(shù);

第2步:計(jì)算初始位置處的螢火蟲目標(biāo)函數(shù)值作為各自的最大熒光亮度;

第3步:計(jì)算螢火蟲群的相對(duì)亮度和相互吸引度,根據(jù)相對(duì)亮度判斷螢火蟲移動(dòng)方向,更新位置;

第4步:根據(jù)更新后的位置,重新計(jì)算相對(duì)亮度;

第5步:當(dāng)滿足最大迭代次數(shù)則輸出最優(yōu)個(gè)體值,否則返回第3步繼續(xù)下一次尋優(yōu)。

2.2.2 變步長(zhǎng)螢火蟲算法

隨著迭代次數(shù)的增加,螢火蟲群會(huì)在最優(yōu)值附近聚集[9]。此時(shí)螢火蟲個(gè)體與最優(yōu)值之間的距離已經(jīng)非常小,在個(gè)體向最優(yōu)值趨近的過程中,很可能會(huì)出現(xiàn)螢火蟲移動(dòng)的距離大于個(gè)體與最優(yōu)值間距的情況,而導(dǎo)致個(gè)體更新自己位置時(shí)跳過了最優(yōu)值,出現(xiàn)震蕩,將會(huì)導(dǎo)致最優(yōu)值發(fā)現(xiàn)率降低,影響算法的收斂精度和速度。為了盡量避免由上述原因造成的收斂較慢情況,潘曉英等[10]采用自適應(yīng)移動(dòng)步長(zhǎng)代替原有固定步長(zhǎng),通過螢火蟲種群的聚合程度令步長(zhǎng)變化呈減小的趨勢(shì),自適應(yīng)移動(dòng)步長(zhǎng)計(jì)算公式為

其中α,為螢火蟲每一代的自適應(yīng)步長(zhǎng)因子,D(Ci)t+1為螢火蟲種群移動(dòng)后的類間距離和。本文借鑒了該思想,在算法開始時(shí),將初始步長(zhǎng)設(shè)定為相對(duì)較大值,而后隨著迭代次數(shù)增加設(shè)定一個(gè)判定條件:當(dāng)?shù)螖?shù)達(dá)到最大迭代次數(shù)的一半時(shí),用式(8)替代固定步長(zhǎng)α,使其逐漸減小趨于0,第t次的步長(zhǎng)因子為

其中e為自然常數(shù),則螢火蟲算法將在開始時(shí)具有較好的全局尋優(yōu)能力,迅速定位在接近全局最優(yōu)解的區(qū)域,而后期也具有良好的局部搜索能力,能精確得到全局最優(yōu)解。

2.3 改進(jìn)K-means算法總結(jié)

聚類數(shù)和初始聚類中心點(diǎn)的選取對(duì)算法的結(jié)果有重要的影響。針對(duì)手肘法可能出現(xiàn)“肘點(diǎn)”不明確問題,進(jìn)一步結(jié)合Gap Statistic確定出最佳聚類數(shù);針對(duì)螢火蟲算法隨著迭代次數(shù)增加可能會(huì)在最優(yōu)值附近出現(xiàn)震蕩的問題,改變步長(zhǎng)因子來提高螢火蟲算法的全局尋優(yōu)和局部搜索能力,將最優(yōu)值作為K-means聚類算法的初始中心點(diǎn)。改進(jìn)后的K-means算法流程如圖2所示。

圖2 改進(jìn)K-means算法流程圖

3 實(shí)驗(yàn)分析

3.1 實(shí)驗(yàn)環(huán)境搭建

為驗(yàn)證改進(jìn)K-means算法的指標(biāo)閾值告警方法,在電網(wǎng)企業(yè)某省公司信息化運(yùn)維系統(tǒng)測(cè)試環(huán)境中進(jìn)行數(shù)據(jù)測(cè)試。采集由五臺(tái)物理機(jī)組成,操作系統(tǒng)為centos7.5,配置為32核CPU,64 G內(nèi)存,500 G硬盤。其中兩臺(tái)部署weblogic集群及jar包庫(kù),三臺(tái)部署采集后臺(tái)服務(wù)。信息化運(yùn)維系統(tǒng)采集控制組件和資源監(jiān)測(cè)組件進(jìn)行容器化部署。

3.2 實(shí)驗(yàn)流程

第1步:對(duì)樣本個(gè)數(shù)為n的指標(biāo)數(shù)據(jù)進(jìn)行缺失值處理,缺失值采用該指標(biāo)當(dāng)天的平均值填充。

第2步:利用二分查找,計(jì)算[1,?n]范圍內(nèi)不同k值下誤差平方和以及類內(nèi)偏離和。

第3步:繪制出誤差平方和隨k值增加的變化趨勢(shì),記錄誤差平方和減少趨勢(shì)不再明顯時(shí)的k1值。

第4步:計(jì)算樣本在均勻分布推斷下的平均類內(nèi)偏離和。

第5步:計(jì)算樣本類內(nèi)偏離和與平均類內(nèi)偏離和的log差作為Gap Statistic。

第6步:繪制出Gap Statistic隨k值增加的變化趨勢(shì)Gap(k)函數(shù),記錄Gap(k)max時(shí)的k2值。

第7步:比較第2步和第5步中的k值,如果兩者相等則將此k值作為樣本聚類個(gè)數(shù),如果不等則k1不斷遞增1,取Gap(k1)最大時(shí)的k1作為樣本聚類個(gè)數(shù)。

第8步:設(shè)定變步長(zhǎng)螢火蟲算法參數(shù):綜合考慮精度和計(jì)算開銷,設(shè)定螢火蟲數(shù)量為,光吸收因子為0.5,最大吸引度為1,最大迭代次數(shù)為200,初始步長(zhǎng)因子設(shè)定為0.95,當(dāng)?shù)螖?shù)達(dá)到100時(shí),按式(9)減少步長(zhǎng)因子,迭代直到收斂到最優(yōu)解作為初始聚類中心點(diǎn)。

第9步:由第7步得到的最佳聚類數(shù)和第8步得到的初始聚類中心點(diǎn)進(jìn)行K-means聚類分析,繪制結(jié)果。

3.3 結(jié)果分析

實(shí)驗(yàn)指標(biāo)數(shù)據(jù)選取CPU使用率,采樣周期為5分鐘,按天計(jì),一天可采集24*60/5=288個(gè)CPU使用率數(shù)值,連續(xù)四周的工作日共計(jì)288*5*4=5760個(gè)樣本。檢查樣本數(shù)據(jù)中是否存在缺失項(xiàng),若存在則采用該天的CPU使用率平均值填充缺失值。在anaconda3環(huán)境中啟動(dòng)Jupyter Notebook后運(yùn)行了python代碼,繪制出實(shí)驗(yàn)流程第3步中的誤差平方和隨k值增加的變化趨勢(shì),如圖3所示,第6步中的Gap Statistic隨k值增加的變化趨勢(shì)如圖4所示。

圖3 誤差平方和隨k值增加的變化趨勢(shì)

圖4 Gap Statistic隨k值增加的變化趨勢(shì)

由圖3、圖4可知,“肘點(diǎn)”的k值為4,Gap Statistic取最大值時(shí)的k值為4,故本次實(shí)驗(yàn)的最佳聚類數(shù)為4,由實(shí)驗(yàn)流程第8步求得的初始聚類中心點(diǎn)進(jìn)行K-means聚類分析,結(jié)果如圖5所示,橫軸表示時(shí)間,進(jìn)行歸一化處理后,范圍為0~23,單位為h,指代一天24小時(shí);縱軸表示CPU使用率,范圍為0~100,單位為%。

圖5 CPU使用率聚類模擬實(shí)驗(yàn)

從聚類結(jié)果來看,整個(gè)圖形近似呈現(xiàn)正態(tài)分布的特征,即業(yè)務(wù)活躍時(shí)段如早晨8點(diǎn)到下午5點(diǎn),有著較高的網(wǎng)站訪問量、程序計(jì)算以及數(shù)據(jù)庫(kù)讀寫等操作,CPU使用率活動(dòng)在20%~90%之間;而非業(yè)務(wù)活躍時(shí)段如非工作時(shí)段和夜間,網(wǎng)站訪問量降低后,機(jī)器的壓力也隨之減少,CPU使用率基本在20%以下。從時(shí)間段劃分來看,上午10點(diǎn)到下午4點(diǎn)之間,CPU使用率有較大概率大于60%,為了留有一定的富余量應(yīng)對(duì)業(yè)務(wù)高峰,此時(shí)應(yīng)將告警的閾值適當(dāng)降低,例如大于80%則產(chǎn)生告警級(jí)別為警告的告警。綜上所述,通過改進(jìn)后的K-means算法能夠聚類分析出各時(shí)段的動(dòng)態(tài)閾值,由后臺(tái)微服務(wù)動(dòng)態(tài)調(diào)整并與消息總線上采集的指標(biāo)進(jìn)行閾值規(guī)則匹配。電網(wǎng)企業(yè)某省公司現(xiàn)場(chǎng)運(yùn)維運(yùn)用新算法后,產(chǎn)生了更加精確的告警,降低了運(yùn)維人員維護(hù)的工作量。

4 結(jié)語

電網(wǎng)企業(yè)信息化運(yùn)維系統(tǒng)由人工配置指標(biāo)閾值告警欠缺靈活性且重復(fù)工作量大,針對(duì)這一痛點(diǎn),采用簡(jiǎn)單高效的K-means聚類算法對(duì)指標(biāo)歷史數(shù)據(jù)按時(shí)間進(jìn)行劃分并由后臺(tái)微服務(wù)調(diào)整各時(shí)段的動(dòng)態(tài)閾值。聚類數(shù)的設(shè)定和初始聚類中心點(diǎn)的選取對(duì)聚類結(jié)果有很大影響。針對(duì)手肘法可能出現(xiàn)“肘點(diǎn)”不明確問題,進(jìn)一步結(jié)合GapStatistic確定出最佳聚類數(shù);針對(duì)螢火蟲算法隨著迭代次數(shù)增加可能會(huì)在最優(yōu)值附近震蕩問題,改變步長(zhǎng)因子來提高螢火蟲算法的全局尋優(yōu)和局部搜索能力,將最優(yōu)值作為K-means聚類算法的初始中心點(diǎn)。通過電網(wǎng)企業(yè)某省公司信息化運(yùn)維系統(tǒng)測(cè)試環(huán)境采集的CPU使用率歷史數(shù)據(jù)進(jìn)行聚類分析實(shí)驗(yàn),結(jié)合業(yè)務(wù)特性分析了不同時(shí)段CPU使用率的閾值情況,實(shí)驗(yàn)結(jié)果表明改進(jìn)的K-means算法能有效分析出指標(biāo)不同時(shí)段的閾值情況,從而可由后臺(tái)微服務(wù)調(diào)整動(dòng)態(tài)閾值,減輕運(yùn)維人員在系統(tǒng)中配置大量的指標(biāo)閾值告警規(guī)則,降低了系統(tǒng)的運(yùn)維成本,進(jìn)一步提升了告警的準(zhǔn)確性。

猜你喜歡
平方和使用率螢火蟲
費(fèi)馬—?dú)W拉兩平方和定理
利用平方和方法證明不等式賽題
螢火蟲
螢火蟲
勾股定理的擴(kuò)展
關(guān)于四奇數(shù)平方和問題
抱抱就不哭了
夏天的螢火蟲
胃腸外科圍手術(shù)期合理使用抗菌藥物的探討
初中生學(xué)習(xí)·低(2012年4期)2012-04-29 04:29:50
独山县| 呼伦贝尔市| 淄博市| 泾源县| 噶尔县| 紫阳县| 长沙市| 峨山| 吉安市| 金堂县| 疏附县| 英超| 于都县| 夹江县| 彝良县| 象州县| 耒阳市| 龙山县| 郓城县| 光泽县| 望都县| 赤城县| 宜兰县| 岳池县| 兴化市| 南木林县| 武定县| 靖宇县| 揭阳市| 商南县| 庆安县| 岳阳县| 女性| 梅州市| 南投县| 稷山县| 邓州市| 栖霞市| 定南县| 江源县| 阳高县|