日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)造程序的“白衣天使”(上)-創(chuàng)新互聯(lián)

作者簡(jiǎn)介:運(yùn)籌    百度資深數(shù)據(jù)架構(gòu)師

10多年的隆德網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整隆德建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“隆德網(wǎng)站設(shè)計(jì)”,“隆德網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

負(fù)責(zé)百度智能運(yùn)維算法和策略的研究工作,致力于用算法和數(shù)據(jù)的力量解決運(yùn)維問(wèn)題。

干貨概覽

人生病了要去看醫(yī)生,程序生病了看的就是運(yùn)維工程師了。醫(yī)生給病人看病要做很多檢查,然后拿著結(jié)果單子分析病因。運(yùn)維工程師分析系統(tǒng)故障也會(huì)查看采集的監(jiān)控指標(biāo),然后判斷根因是什么。

查看指標(biāo)這事兒,說(shuō)起來(lái)也不難。只要畫出指標(biāo)的趨勢(shì)圖(指標(biāo)值隨時(shí)間變化的曲線),有經(jīng)驗(yàn)的工程師很容易就能看出有沒(méi)有毛病,進(jìn)而推斷故障的原因。不過(guò)呢,都說(shuō)脫離開劑量說(shuō)食物的毒性是耍流氓,查看指標(biāo)這事也差不多。如果只有幾條指標(biāo)需要查看,做個(gè)儀表盤就能一目了然,可是如果有成千上萬(wàn)的指標(biāo)呢?人家查抄大老虎的時(shí)候點(diǎn)鈔機(jī)都燒壞了好幾臺(tái),如果人工查看這么多指標(biāo),腦子的下場(chǎng)估計(jì)也好不到哪兒去。所以說(shuō)還是得靠“機(jī)器人”。

等等,“機(jī)器人”怎么能知道什么指標(biāo)有毛病,什么指標(biāo)沒(méi)毛病呢?就算能知道,把有毛病的指標(biāo)挑出來(lái)工程師憑啥就能知道根因呢?所以,我們的“機(jī)器人醫(yī)生”必須能夠識(shí)別出指標(biāo)的異常,然后還需要能把識(shí)別出的異常整理成工程師容易理解的報(bào)告才行。

傳統(tǒng)的辦法

創(chuàng)造程序的“白衣天使”(上)

圖1  模塊調(diào)用關(guān)系圖

人工診斷故障的時(shí)候,工程師往往是根據(jù)腦子里的模塊調(diào)用關(guān)系圖(圖 1)來(lái)排查系統(tǒng)。很多時(shí)候,故障都是因?yàn)樵谧钌嫌蔚?strong>前端模塊(圖 1中的A)上看到了很多失敗的請(qǐng)求發(fā)現(xiàn)的。這時(shí),工程師就會(huì)沿著A往下查。因?yàn)锳調(diào)用了B模塊,所以需要查看B的指標(biāo),如果有指標(biāo)異常那么就懷疑是B導(dǎo)致了故障。然后再檢查B的直接下游模塊C,以此類推。在這個(gè)過(guò)程中,懷疑通過(guò)模塊的調(diào)用關(guān)系不斷往下傳遞,直到傳不下去為止。在圖 1的例子中懷疑最后就停在了倒霉蛋G的頭上,誰(shuí)讓它沒(méi)有下游模塊呢。

總的來(lái)說(shuō),這就是模塊間把責(zé)任想辦法往下游推的過(guò)程。當(dāng)然,真實(shí)的場(chǎng)景要更加復(fù)雜一些。并不是只要下游有異常就可以推的,還需要考察異常的程度。比如,如果倒霉蛋G的異常程度比E的異常程度小很多,根因就更有可能在E里面。

找到了根因模塊再去分析根因就容易多了,所以尋找根因模塊是故障診斷中很重要的步驟。

上面的過(guò)程可以很直接地變成一個(gè)工具:

  • 做一個(gè)頁(yè)面展示模塊調(diào)用關(guān)系圖

  • 工程師為每個(gè)指標(biāo)配置黃金指標(biāo),以及黃金指標(biāo)的閾值

  • 在模塊圖中標(biāo)出黃金指標(biāo)有異常的模塊以及它們到達(dá)前端模塊的可能路徑

這個(gè)工具通過(guò)配置黃金指標(biāo)及閾值的方式解決了指標(biāo)以及如何判斷異常的問(wèn)題,然后再通過(guò)模塊調(diào)用關(guān)系圖的方式呈現(xiàn)異常判斷的結(jié)果,解決了異常判斷結(jié)果整理這兩個(gè)核心問(wèn)題。

不過(guò),傳統(tǒng)的辦法在實(shí)際使用中還是會(huì)碰到很多問(wèn)題:

  1. 活的系統(tǒng)一定是不斷演化的,模塊的調(diào)用關(guān)系也隨之發(fā)生改變。為了保證工具里面的關(guān)系圖不會(huì)過(guò)時(shí),就需要不斷從真實(shí)系統(tǒng)同步。干過(guò)系統(tǒng)梳理這種活的工程師都知道,這可不容易。如果整個(gè)系統(tǒng)使用統(tǒng)一的RPC中間件在模塊中通訊,那就可以通過(guò)分析RPC trace log的方式挖掘出調(diào)用關(guān)系圖來(lái),不過(guò)“歷史代碼”通常會(huì)趴在路中間攔著你。

  2. 每個(gè)黃金指標(biāo)通常只能覆蓋一部分的故障類型,新的故障一出現(xiàn),就需要增加黃金指標(biāo)。這樣一來(lái)配置工作——尤其是閾值的配置——就會(huì)不斷出現(xiàn)。另外,指標(biāo)多了,就很容易出現(xiàn)“全國(guó)山河一片紅”的情況。大多數(shù)的模塊都被標(biāo)出來(lái)的時(shí)候,工具也就沒(méi)啥用了。

  3. 大型的系統(tǒng)為了保證性能和可用性,常常需要在好幾個(gè)機(jī)房中部署鏡像系統(tǒng)。因?yàn)榇蠖鄶?shù)的故障只發(fā)生在一個(gè)機(jī)房的系統(tǒng)中,所以工程師不但需要知道根因模塊是誰(shuí),還需要知道在哪個(gè)機(jī)房。這樣一來(lái),每個(gè)機(jī)房都得有一個(gè)調(diào)用關(guān)系圖,工程師得一個(gè)一個(gè)地看。

理想的效果

傳統(tǒng)的方法作出來(lái)的診斷工具最多也就是半自動(dòng)的,應(yīng)用起來(lái)也受到很多的限制,所以我們就想做一個(gè)真正全自動(dòng)、智能化的工具。

首先,我們希望新工具不要過(guò)于依賴于黃金指標(biāo),這樣指標(biāo)的配置工作就能減少。但是,這反過(guò)來(lái)說(shuō)明全自動(dòng)的工具必須能夠掃描所有模塊上的所有指標(biāo),這樣才能做到?jīng)]有遺漏。所以,異常判斷不能再通過(guò)人工設(shè)置閾值的方式來(lái)進(jìn)行,而必須是基本上無(wú)監(jiān)督的(Unsupervised)。另外,不同指標(biāo)的語(yǔ)意有很大差異,異常判斷的算法也必須足夠靈活,以適應(yīng)不同指標(biāo)的特點(diǎn)。

其次,我們希望工具不要太過(guò)依賴于調(diào)用關(guān)系圖,這意味著我們需要尋找一種新的方式來(lái)整理和呈現(xiàn)結(jié)果。其實(shí),調(diào)用關(guān)系圖并不是必須的。在使用傳統(tǒng)診斷方法時(shí),我們就發(fā)現(xiàn)一部分工程師經(jīng)常脫離調(diào)用關(guān)系圖,直接按照黃金指標(biāo)的異常程度從大到小檢查模塊。這是因?yàn)檫@部分工程師負(fù)責(zé)的系統(tǒng)黃金指標(biāo)代表性強(qiáng)、容易理解,更重要的是不同模塊黃金指標(biāo)的異常程度可以比較。

所以說(shuō),我們完全可以做一個(gè)診斷工具來(lái)產(chǎn)出根因模塊的推薦報(bào)告,報(bào)告的內(nèi)容必須易于理解,推薦的順序也必須足夠準(zhǔn)確。

實(shí)例指標(biāo)的自動(dòng)排查分析


我們以實(shí)例指標(biāo)為例,介紹如何實(shí)現(xiàn)一個(gè)指標(biāo)排查工具,達(dá)成理想的效果。排查工具的總體流程如圖 2所示。

創(chuàng)造程序的“白衣天使”(上)

圖2  實(shí)例指標(biāo)自動(dòng)排查的總體流程

在第一步,所有被收集來(lái)的指標(biāo)都會(huì)通過(guò)異常檢測(cè)算法賦予它們一個(gè)異常分?jǐn)?shù)。比較兩個(gè)指標(biāo)的異常分?jǐn)?shù)就能夠知道它們的異常程度誰(shuí)大誰(shuí)小了。這一步的核心是要尋找一個(gè)方法能夠量化地衡量每個(gè)指標(biāo)的異常,而且這個(gè)量化衡量出來(lái)的分?jǐn)?shù)還可以在不同實(shí)例的不同指標(biāo)之間比較。

第二步,我們把異常分?jǐn)?shù)按照它們所屬的實(shí)例分組,每組形成一個(gè)向量(vector)。這時(shí),每個(gè)實(shí)例都會(huì)對(duì)應(yīng)一個(gè)向量,向量中的每個(gè)元素就是一個(gè)指標(biāo)的異常分?jǐn)?shù)。然后,模式(pattern)差不多的向量就可以通過(guò)聚類(clustering)算法聚成若干個(gè)摘要(digest)。這樣一來(lái),工程師們就容易理解分析的結(jié)果了。

第三步,我們可以根據(jù)摘要中包含的實(shí)例以及指標(biāo)的異常分?jǐn)?shù)排序(ranking),形成推薦報(bào)告。

總結(jié)

本文介紹了一種在服務(wù)發(fā)生故障時(shí)自動(dòng)排查監(jiān)控指標(biāo)的工具,第一步利用了概率統(tǒng)計(jì)的方式估算每個(gè)指標(biāo)的異常分?jǐn)?shù),第二步用聚類的方式把異常模式相近的實(shí)例聚集在一起形成摘要,第三步用ranking的方式向工程師推薦最有可能是根因的摘要。

由于運(yùn)維場(chǎng)景的特點(diǎn)是數(shù)據(jù)量大,但是標(biāo)定很少,生成標(biāo)定的代價(jià)高昂而且容易出錯(cuò),接下來(lái)我們會(huì)詳細(xì)介紹如何利用概率統(tǒng)計(jì)、非監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)的方法來(lái)解決這個(gè)問(wèn)題,敬請(qǐng)期待吧~


文章標(biāo)題:創(chuàng)造程序的“白衣天使”(上)-創(chuàng)新互聯(lián)
文章URL:http://www.dlmjj.cn/article/dsijgd.html