精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:服務(wù)器企業(yè)動(dòng)態(tài) → 正文

Netflix使用的異常服務(wù)器偵測(cè)技術(shù)

責(zé)任編輯:editor006 |來源:企業(yè)網(wǎng)D1Net  2015-07-17 16:20:03 本文摘自:Netflix

凌晨,時(shí)針指向兩點(diǎn),我們技術(shù)保障團(tuán)隊(duì)一半的人手還在追查Netflix出錯(cuò)的原因。系統(tǒng)看起來運(yùn)行還算正常,肯定是有哪不對(duì)但我們死活也找不著。查了一個(gè)小時(shí),終于發(fā)現(xiàn)原來是數(shù)據(jù)中心里一臺(tái)服務(wù)器出了問題。我們一直在查找有沒有什么特別明顯的問題,而且數(shù)據(jù)中心有好幾萬臺(tái)服務(wù)器,所以把這個(gè)小淘氣給忽略掉了。

連續(xù)劇《夜魔俠》里面的主角是個(gè)瞎子,但其他的感官異常靈敏。這使他可以察覺到某個(gè)人行為上的些許異常從而判斷出這個(gè)人是否在撒謊。我們也開發(fā)了一個(gè)系統(tǒng)來發(fā)現(xiàn)服務(wù)器之間細(xì)微的差別,差別雖然小,但可能就是這些小的地方出問題。

本文中我們將介紹這一自動(dòng)異常偵測(cè)技術(shù)和問題服務(wù)器的修復(fù)。多虧了它,不然我們恐怕得整天半夜爬起來救火。

現(xiàn)在運(yùn)行Netflix服務(wù)的有好幾萬臺(tái)服務(wù)器,一般出問題的比例不會(huì)超過1%。比如說有一臺(tái)服務(wù)器的網(wǎng)絡(luò)出了點(diǎn)問題導(dǎo)致用戶的連接出現(xiàn)了延遲。雖然運(yùn)行狀態(tài)不理想,但在服務(wù)器健康檢查中是看不出來的。

其實(shí)這種有問題的服務(wù)器還不如直接掛掉。起碼掛掉的話現(xiàn)有的監(jiān)測(cè)系統(tǒng)和工程師能夠發(fā)現(xiàn)它掛了。現(xiàn)在它雖然沒有掛,但影響到了用戶的體驗(yàn),我們的客服還是一樣要接電話聽用戶的抱怨。也不知怎的,幾萬臺(tái)服務(wù)器里總有幾個(gè)要出問題。

圖中不同顏色的線代表某個(gè)服務(wù)器的錯(cuò)誤率。每條線都有峰值然后掉回到零,但紫色代表的這臺(tái)服務(wù)器錯(cuò)誤率一直高于其他服務(wù)器。從圖中你能看出紫色代表的服務(wù)器有異常嗎?有沒有辦法使用這些時(shí)序數(shù)據(jù)來實(shí)現(xiàn)異常偵測(cè)的自動(dòng)化呢?

有一種簡(jiǎn)單的方法是設(shè)置一個(gè)閾值,錯(cuò)誤率高于閾值就報(bào)警,但只適用于錯(cuò)誤率特別高的服務(wù)器而且這種方法有一個(gè)問題就是所有數(shù)據(jù)都會(huì)有尖峰所以可能誤差會(huì)比較大,下面的圖中我們就很難找到一個(gè)合適的閾值,此外使用的閾值也需要定期進(jìn)行調(diào)整因?yàn)榉?wù)器集中使用的時(shí)間和負(fù)載都可能出現(xiàn)變化。我們提高系統(tǒng)可靠性的突破點(diǎn)就是自動(dòng)偵測(cè)那些有問題但用閾值法發(fā)現(xiàn)不了的服務(wù)器。

為了解決這一問題我們使用了聚類分析算法。聚類分析算法的基本原理是將相似程度高的樣本歸到一類。這一算法是非監(jiān)督式的所以我們不需要進(jìn)行數(shù)據(jù)標(biāo)記和提供數(shù)據(jù)。具體的聚類分析算法有很多種,這里我們使用的是Density-Based Spatial Clustering of Applications with Noise (DBSCAN) 算法。

DBSCAN算法原理

DBSCAN算法是Martin Ester、Hans-Peter Kriegel、J rg Sander和徐曉偉在1996年提出的,可以說是聚類分析的典型算法。DBSCAN遍歷所有的數(shù)據(jù)點(diǎn),如果有很多相鄰的數(shù)據(jù)點(diǎn)的話就歸為一類。為了在DBSCAN算法中衡量數(shù)據(jù)點(diǎn)是否相鄰我們需要一個(gè)判斷距離的方法。 這里可視化了DBSCNAN算法運(yùn)行的過程,如果感興趣的話可以看下。

使用DBSCAN算法尋找異常服務(wù)器

要找出有異常的服務(wù)器,我們先要指定一個(gè)指標(biāo),比如之前我們提到的錯(cuò)誤率。接下來就要收集一段時(shí)序數(shù)據(jù)并使用DBSCAN算法來進(jìn)行處理找出發(fā)生異常的服務(wù)器。比如下面這幅圖中涂成粉紅色的就是從Netflix時(shí)序數(shù)據(jù)平臺(tái)中收集的部分。

除了測(cè)量的指標(biāo),我們還需要指定將服務(wù)器標(biāo)記為異常的最短持續(xù)時(shí)間。探測(cè)到異常之后就交由我們的報(bào)警系統(tǒng)來進(jìn)行以下處理:

發(fā)郵件或者打電話聯(lián)系負(fù)責(zé)人

服務(wù)器下線但不停止

收集服務(wù)器數(shù)據(jù)以供進(jìn)一步調(diào)查

停止服務(wù)器等待擴(kuò)展系統(tǒng)進(jìn)行替換

參數(shù)的選擇

DBSCAN算法中需要設(shè)置兩個(gè)參數(shù):Eps和MinPts。意思分別是判斷數(shù)據(jù)點(diǎn)是否相鄰的半徑和定義一個(gè)集群所需要的數(shù)據(jù)點(diǎn)的最小個(gè)數(shù)。這里我們的參數(shù)是根據(jù)現(xiàn)有的異常服務(wù)器數(shù)目使用模擬退火算法逆推出來的。這種逆推的方式簡(jiǎn)化了參數(shù)的設(shè)置所以現(xiàn)在Netflix有好幾個(gè)項(xiàng)目組都在用我們這個(gè)系統(tǒng)。

為了對(duì)這個(gè)系統(tǒng)的有效性進(jìn)行評(píng)估,我們已經(jīng)在生產(chǎn)環(huán)境中進(jìn)行了測(cè)試。我們一共收集了一個(gè)星期的數(shù)據(jù),然后將人工識(shí)別出的異常服務(wù)器與算法識(shí)別出的異常服務(wù)器進(jìn)行了對(duì)比。下面是測(cè)試的結(jié)果

這個(gè)結(jié)果顯示我們這個(gè)偵測(cè)系統(tǒng)雖然不是100%準(zhǔn)確但是效果很不錯(cuò)了。根據(jù)我們的自身情況來說也不用完全做到一點(diǎn)都不差,因?yàn)榫退惆岩粋€(gè)正常運(yùn)行的服務(wù)器給關(guān)掉了也不會(huì)對(duì)用戶體驗(yàn)造成多大影響,因?yàn)閿U(kuò)展系統(tǒng)馬上就能加一個(gè)新的服務(wù)器進(jìn)來。有這個(gè)偵測(cè)系統(tǒng)總是比沒有強(qiáng)吧哈哈。

現(xiàn)在我們的做法是收集一段時(shí)間的數(shù)據(jù)來進(jìn)行偵測(cè)。因?yàn)椴皇菍?shí)時(shí)偵測(cè),所以效果就跟收集數(shù)據(jù)的時(shí)間長短有關(guān):時(shí)間太短的話可能有噪音,太長的話偵測(cè)的速度又太慢。如果要對(duì)這套系統(tǒng)進(jìn)行改進(jìn)的話,可以考慮使用實(shí)時(shí)流式處理框架比如Mantis和Apache Spark Streaming。數(shù)據(jù)流挖掘和在線機(jī)器學(xué)習(xí)方面的研究也有一些進(jìn)展所以如果你想建設(shè)一個(gè)類似的系統(tǒng)可以考慮下。

此外在參數(shù)的設(shè)置上也可以進(jìn)行改進(jìn)。可以進(jìn)行數(shù)據(jù)標(biāo)記來組織訓(xùn)練數(shù)據(jù)并根據(jù)提供的訓(xùn)練數(shù)據(jù)來對(duì)模型進(jìn)行訓(xùn)練,這種方法比我們現(xiàn)在用的逆推更好而且模型可以根據(jù)訓(xùn)練數(shù)據(jù)的變化來重新訓(xùn)練。

小結(jié)

Netflix的基礎(chǔ)設(shè)施變得越來越龐大,將運(yùn)營中的某些決定(比如這里的停止服務(wù)器)進(jìn)行自動(dòng)化可以提高可用性并減輕運(yùn)維人員的負(fù)擔(dān)。夜魔俠的服裝能幫他打架,機(jī)器學(xué)習(xí)也能夠提高我們技術(shù)保障團(tuán)隊(duì)的效率。偵測(cè)異常服務(wù)器只是自動(dòng)化的一個(gè)例子,其他可以自動(dòng)化的機(jī)會(huì)還有很多,就留待大家去發(fā)掘吧。

關(guān)鍵字:偵測(cè)MantisDBSCNAN

本文摘自:Netflix

x Netflix使用的異常服務(wù)器偵測(cè)技術(shù) 掃一掃
分享本文到朋友圈
當(dāng)前位置:服務(wù)器企業(yè)動(dòng)態(tài) → 正文

Netflix使用的異常服務(wù)器偵測(cè)技術(shù)

責(zé)任編輯:editor006 |來源:企業(yè)網(wǎng)D1Net  2015-07-17 16:20:03 本文摘自:Netflix

凌晨,時(shí)針指向兩點(diǎn),我們技術(shù)保障團(tuán)隊(duì)一半的人手還在追查Netflix出錯(cuò)的原因。系統(tǒng)看起來運(yùn)行還算正常,肯定是有哪不對(duì)但我們死活也找不著。查了一個(gè)小時(shí),終于發(fā)現(xiàn)原來是數(shù)據(jù)中心里一臺(tái)服務(wù)器出了問題。我們一直在查找有沒有什么特別明顯的問題,而且數(shù)據(jù)中心有好幾萬臺(tái)服務(wù)器,所以把這個(gè)小淘氣給忽略掉了。

連續(xù)劇《夜魔俠》里面的主角是個(gè)瞎子,但其他的感官異常靈敏。這使他可以察覺到某個(gè)人行為上的些許異常從而判斷出這個(gè)人是否在撒謊。我們也開發(fā)了一個(gè)系統(tǒng)來發(fā)現(xiàn)服務(wù)器之間細(xì)微的差別,差別雖然小,但可能就是這些小的地方出問題。

本文中我們將介紹這一自動(dòng)異常偵測(cè)技術(shù)和問題服務(wù)器的修復(fù)。多虧了它,不然我們恐怕得整天半夜爬起來救火。

現(xiàn)在運(yùn)行Netflix服務(wù)的有好幾萬臺(tái)服務(wù)器,一般出問題的比例不會(huì)超過1%。比如說有一臺(tái)服務(wù)器的網(wǎng)絡(luò)出了點(diǎn)問題導(dǎo)致用戶的連接出現(xiàn)了延遲。雖然運(yùn)行狀態(tài)不理想,但在服務(wù)器健康檢查中是看不出來的。

其實(shí)這種有問題的服務(wù)器還不如直接掛掉。起碼掛掉的話現(xiàn)有的監(jiān)測(cè)系統(tǒng)和工程師能夠發(fā)現(xiàn)它掛了。現(xiàn)在它雖然沒有掛,但影響到了用戶的體驗(yàn),我們的客服還是一樣要接電話聽用戶的抱怨。也不知怎的,幾萬臺(tái)服務(wù)器里總有幾個(gè)要出問題。

圖中不同顏色的線代表某個(gè)服務(wù)器的錯(cuò)誤率。每條線都有峰值然后掉回到零,但紫色代表的這臺(tái)服務(wù)器錯(cuò)誤率一直高于其他服務(wù)器。從圖中你能看出紫色代表的服務(wù)器有異常嗎?有沒有辦法使用這些時(shí)序數(shù)據(jù)來實(shí)現(xiàn)異常偵測(cè)的自動(dòng)化呢?

有一種簡(jiǎn)單的方法是設(shè)置一個(gè)閾值,錯(cuò)誤率高于閾值就報(bào)警,但只適用于錯(cuò)誤率特別高的服務(wù)器而且這種方法有一個(gè)問題就是所有數(shù)據(jù)都會(huì)有尖峰所以可能誤差會(huì)比較大,下面的圖中我們就很難找到一個(gè)合適的閾值,此外使用的閾值也需要定期進(jìn)行調(diào)整因?yàn)榉?wù)器集中使用的時(shí)間和負(fù)載都可能出現(xiàn)變化。我們提高系統(tǒng)可靠性的突破點(diǎn)就是自動(dòng)偵測(cè)那些有問題但用閾值法發(fā)現(xiàn)不了的服務(wù)器。

為了解決這一問題我們使用了聚類分析算法。聚類分析算法的基本原理是將相似程度高的樣本歸到一類。這一算法是非監(jiān)督式的所以我們不需要進(jìn)行數(shù)據(jù)標(biāo)記和提供數(shù)據(jù)。具體的聚類分析算法有很多種,這里我們使用的是Density-Based Spatial Clustering of Applications with Noise (DBSCAN) 算法。

DBSCAN算法原理

DBSCAN算法是Martin Ester、Hans-Peter Kriegel、J rg Sander和徐曉偉在1996年提出的,可以說是聚類分析的典型算法。DBSCAN遍歷所有的數(shù)據(jù)點(diǎn),如果有很多相鄰的數(shù)據(jù)點(diǎn)的話就歸為一類。為了在DBSCAN算法中衡量數(shù)據(jù)點(diǎn)是否相鄰我們需要一個(gè)判斷距離的方法。 這里可視化了DBSCNAN算法運(yùn)行的過程,如果感興趣的話可以看下。

使用DBSCAN算法尋找異常服務(wù)器

要找出有異常的服務(wù)器,我們先要指定一個(gè)指標(biāo),比如之前我們提到的錯(cuò)誤率。接下來就要收集一段時(shí)序數(shù)據(jù)并使用DBSCAN算法來進(jìn)行處理找出發(fā)生異常的服務(wù)器。比如下面這幅圖中涂成粉紅色的就是從Netflix時(shí)序數(shù)據(jù)平臺(tái)中收集的部分。

除了測(cè)量的指標(biāo),我們還需要指定將服務(wù)器標(biāo)記為異常的最短持續(xù)時(shí)間。探測(cè)到異常之后就交由我們的報(bào)警系統(tǒng)來進(jìn)行以下處理:

發(fā)郵件或者打電話聯(lián)系負(fù)責(zé)人

服務(wù)器下線但不停止

收集服務(wù)器數(shù)據(jù)以供進(jìn)一步調(diào)查

停止服務(wù)器等待擴(kuò)展系統(tǒng)進(jìn)行替換

參數(shù)的選擇

DBSCAN算法中需要設(shè)置兩個(gè)參數(shù):Eps和MinPts。意思分別是判斷數(shù)據(jù)點(diǎn)是否相鄰的半徑和定義一個(gè)集群所需要的數(shù)據(jù)點(diǎn)的最小個(gè)數(shù)。這里我們的參數(shù)是根據(jù)現(xiàn)有的異常服務(wù)器數(shù)目使用模擬退火算法逆推出來的。這種逆推的方式簡(jiǎn)化了參數(shù)的設(shè)置所以現(xiàn)在Netflix有好幾個(gè)項(xiàng)目組都在用我們這個(gè)系統(tǒng)。

為了對(duì)這個(gè)系統(tǒng)的有效性進(jìn)行評(píng)估,我們已經(jīng)在生產(chǎn)環(huán)境中進(jìn)行了測(cè)試。我們一共收集了一個(gè)星期的數(shù)據(jù),然后將人工識(shí)別出的異常服務(wù)器與算法識(shí)別出的異常服務(wù)器進(jìn)行了對(duì)比。下面是測(cè)試的結(jié)果

這個(gè)結(jié)果顯示我們這個(gè)偵測(cè)系統(tǒng)雖然不是100%準(zhǔn)確但是效果很不錯(cuò)了。根據(jù)我們的自身情況來說也不用完全做到一點(diǎn)都不差,因?yàn)榫退惆岩粋€(gè)正常運(yùn)行的服務(wù)器給關(guān)掉了也不會(huì)對(duì)用戶體驗(yàn)造成多大影響,因?yàn)閿U(kuò)展系統(tǒng)馬上就能加一個(gè)新的服務(wù)器進(jìn)來。有這個(gè)偵測(cè)系統(tǒng)總是比沒有強(qiáng)吧哈哈。

現(xiàn)在我們的做法是收集一段時(shí)間的數(shù)據(jù)來進(jìn)行偵測(cè)。因?yàn)椴皇菍?shí)時(shí)偵測(cè),所以效果就跟收集數(shù)據(jù)的時(shí)間長短有關(guān):時(shí)間太短的話可能有噪音,太長的話偵測(cè)的速度又太慢。如果要對(duì)這套系統(tǒng)進(jìn)行改進(jìn)的話,可以考慮使用實(shí)時(shí)流式處理框架比如Mantis和Apache Spark Streaming。數(shù)據(jù)流挖掘和在線機(jī)器學(xué)習(xí)方面的研究也有一些進(jìn)展所以如果你想建設(shè)一個(gè)類似的系統(tǒng)可以考慮下。

此外在參數(shù)的設(shè)置上也可以進(jìn)行改進(jìn)。可以進(jìn)行數(shù)據(jù)標(biāo)記來組織訓(xùn)練數(shù)據(jù)并根據(jù)提供的訓(xùn)練數(shù)據(jù)來對(duì)模型進(jìn)行訓(xùn)練,這種方法比我們現(xiàn)在用的逆推更好而且模型可以根據(jù)訓(xùn)練數(shù)據(jù)的變化來重新訓(xùn)練。

小結(jié)

Netflix的基礎(chǔ)設(shè)施變得越來越龐大,將運(yùn)營中的某些決定(比如這里的停止服務(wù)器)進(jìn)行自動(dòng)化可以提高可用性并減輕運(yùn)維人員的負(fù)擔(dān)。夜魔俠的服裝能幫他打架,機(jī)器學(xué)習(xí)也能夠提高我們技術(shù)保障團(tuán)隊(duì)的效率。偵測(cè)異常服務(wù)器只是自動(dòng)化的一個(gè)例子,其他可以自動(dòng)化的機(jī)會(huì)還有很多,就留待大家去發(fā)掘吧。

關(guān)鍵字:偵測(cè)MantisDBSCNAN

本文摘自:Netflix

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 太和县| 甘南县| 铅山县| 吉水县| 保亭| 泰宁县| 固安县| 灵山县| 扶风县| 民丰县| 历史| 高雄市| 江陵县| 绥棱县| 普安县| 浦江县| 贵州省| 富平县| 新巴尔虎左旗| 东平县| 石首市| 定安县| 历史| 岗巴县| 林芝县| 炎陵县| 汝城县| 吉首市| 兴国县| 获嘉县| 上栗县| 鲁山县| 桓仁| 武威市| 许昌县| 玛曲县| 密山市| 沈阳市| 平湖市| 卓资县| 定兴县|