《数据中心设计与运营实战》——2.6 监控基础设施
本節(jié)書摘來自異步社區(qū)《數(shù)據(jù)中心設(shè)計(jì)與運(yùn)營實(shí)戰(zhàn)》一書中的第2章,第2.1節(jié),作者: 【美】Luiz André Barroso , 【美】Jimmy Clidaras , 【瑞士】Urs H?lzle 更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號(hào)查看。
2.6 監(jiān)控基礎(chǔ)設(shè)施
各種形式的系統(tǒng)內(nèi)控是集群級(jí)基礎(chǔ)架構(gòu)軟件層的一個(gè)重要部分,因?yàn)闊o論是工作負(fù)載還是硬件基礎(chǔ)架構(gòu),其規(guī)模和復(fù)雜性都決定了監(jiān)控框架應(yīng)成為系統(tǒng)最基本組成部分,如接下來的內(nèi)容所闡述的。
2.6.1 服務(wù)級(jí)儀表盤
系統(tǒng)操作員需要監(jiān)測(cè)互聯(lián)網(wǎng)服務(wù)是否達(dá)到設(shè)定的服務(wù)水平。監(jiān)測(cè)信息必須是非常即時(shí)的,這樣操作員(或自動(dòng)系統(tǒng))才能以秒(而不是分鐘)為單位采取快速準(zhǔn)確的反應(yīng)以避免巨大的災(zāi)難。幸運(yùn)的是,監(jiān)測(cè)只需要有限的幾個(gè)關(guān)鍵信息,例如延遲、用戶需求的吞吐量分析,這些都可以從前端服務(wù)器收集到。這樣的監(jiān)測(cè)系統(tǒng)簡單說就是一個(gè)腳本文件,每隔幾秒收集所有前端服務(wù)器的適當(dāng)信息,并發(fā)送到系統(tǒng)操作員的儀表盤上。由于大規(guī)模服務(wù)的前端信息數(shù)量可能是很大的,而且也需要大量的信息來驗(yàn)證服務(wù)正常運(yùn)行,因此需要更加成熟的和可擴(kuò)展的監(jiān)測(cè)支持。例如,不但收集到的信息本身很重要,信息隨時(shí)間產(chǎn)生的變化也相當(dāng)重要。再比如,系統(tǒng)也會(huì)需要監(jiān)測(cè)延遲和吞吐量以外的其他特定的業(yè)務(wù)參數(shù)。監(jiān)測(cè)系統(tǒng)可能還需要支持一種簡單的語言,讓系統(tǒng)操作員在監(jiān)測(cè)到的基礎(chǔ)信息的基礎(chǔ)上生成衍生參數(shù)。
最后,系統(tǒng)還需要根據(jù)監(jiān)測(cè)到的數(shù)據(jù)和閥值進(jìn)行自動(dòng)報(bào)警,呼叫操作員。不過要想讓報(bào)警系統(tǒng)達(dá)到完美并非易事,因?yàn)槿绻`報(bào)太頻繁有可能使操作員忽略了真正的報(bào)警;但如果只在極端情況時(shí)才觸發(fā)報(bào)警,則有可能耽誤了解決問題的最佳時(shí)機(jī)。
2.6.2 性能調(diào)試工具
雖然服務(wù)級(jí)儀表盤可以使操作員快速識(shí)別服務(wù)層的問題,但卻缺乏問題的詳細(xì)信息以了解服務(wù)變慢或者無法滿足要求的原因。運(yùn)維人員和服務(wù)設(shè)計(jì)人員都需要一些工具的幫助以了解運(yùn)行在數(shù)百臺(tái)服務(wù)器上的許多程序間的復(fù)雜關(guān)系,使他們能確定性能異常的根本原因,并找出瓶頸。不同于服務(wù)級(jí)儀表盤,性能調(diào)試工具不需要為在線運(yùn)行產(chǎn)生實(shí)時(shí)信息。可以把它看成是一個(gè)數(shù)據(jù)中心的模擬CPU分析器,用來確定哪些功能調(diào)用導(dǎo)致了大部分的程序時(shí)間開銷。
分布式系統(tǒng)跟蹤工具可以滿足上述需要。這些工具模擬某一發(fā)起者(例如一個(gè)用戶請(qǐng)求),跟蹤一個(gè)分布式系統(tǒng)內(nèi)的所有工作過程,并詳細(xì)列出所涉及的各組成部分之間的因果或時(shí)間關(guān)系。
分布式系統(tǒng)跟蹤工具的實(shí)現(xiàn)方式分兩大類:黑盒監(jiān)控系統(tǒng)和應(yīng)用/中間件儀表系統(tǒng)。WAP5【128】和Sherlock【11】系統(tǒng)就屬于黑盒監(jiān)控工具。這種系統(tǒng)采用的方法包括觀測(cè)系統(tǒng)組件間網(wǎng)絡(luò)流量和通過統(tǒng)計(jì)推斷方法推斷因果關(guān)系。這種方法把所有系統(tǒng)組件(除了網(wǎng)絡(luò)接口)都看作為黑盒子,因此優(yōu)勢(shì)在于不需要任何對(duì)應(yīng)用或軟件基礎(chǔ)架構(gòu)部件的了解或輔助就能工作。不過這種方式犧牲了信息的準(zhǔn)確性,因?yàn)樗械年P(guān)系都是通過統(tǒng)計(jì)推斷出來的。收集和分析更多的消息數(shù)據(jù)可以提高準(zhǔn)確性,但卻造成監(jiān)管開銷的增加。
基于工具的跟蹤系統(tǒng),例如Pip 【127】、Magpie 【15】和X-trace 【54】,利用顯式修改應(yīng)用或中間件函數(shù)庫的能力可用來傳遞被追蹤的跨機(jī)器組信息及機(jī)器組內(nèi)跨邊界跨模塊的信息。帶注釋的應(yīng)用模塊通常也在本地硬盤記錄追蹤信息,后續(xù)由外部的性能分析程序收集。這些系統(tǒng)很準(zhǔn)確,因?yàn)樗鼈儾恍枰评?#xff0c;但要求分布式系統(tǒng)的所有部件能支持通過指令收集全面的追蹤數(shù)據(jù)。Google開發(fā)的Dapper【141】系統(tǒng)就是一個(gè)基于注解的追蹤工具實(shí)例,通過指令關(guān)聯(lián)所有應(yīng)用的一些關(guān)鍵模塊,如消息、控制流和線程庫,來對(duì)應(yīng)用級(jí)軟件保持有效的透明。
基于硬件性能計(jì)數(shù)器采樣的CPU分析器已經(jīng)在幫助程序員理解微架構(gòu)的性能和現(xiàn)象方面取得了顯著的成功。Google Wide Profiling(GWP)基礎(chǔ)架構(gòu)【125】選擇隨機(jī)一組機(jī)器來收集短期的整機(jī)和每個(gè)進(jìn)程配置文件的數(shù)據(jù),并結(jié)合所有Google二進(jìn)制符號(hào)特征信息庫,生成集群范圍的配置文件視圖。GWP回答了諸如“哪個(gè)程序是Google最常執(zhí)行的?”以及“哪個(gè)程序是內(nèi)存的最大用戶?”等問題。
2.6.3 平臺(tái)層監(jiān)控
分布式系統(tǒng)追蹤工具和服務(wù)級(jí)儀表盤都能對(duì)應(yīng)用的健康及性能進(jìn)行檢測(cè)。這些工具可以推斷出一個(gè)硬件組件可能發(fā)生錯(cuò)誤,但這仍然屬于間接評(píng)估。而且由于集群級(jí)基礎(chǔ)架構(gòu)和應(yīng)用級(jí)軟件的設(shè)計(jì)都是硬件容錯(cuò)的,在這個(gè)級(jí)別進(jìn)行監(jiān)控將錯(cuò)失大量的底層硬件細(xì)節(jié)問題,可能累積至軟件容錯(cuò)無法處理,導(dǎo)致嚴(yán)重的服務(wù)中斷。持續(xù)和直接監(jiān)測(cè)計(jì)算平臺(tái)健康的工具需要能理解和分析硬件和系統(tǒng)軟件的故障。我們會(huì)在第7章詳細(xì)討論這些工具以及這些工具在Google基礎(chǔ)架構(gòu)上的應(yīng)用。
總結(jié)
以上是生活随笔為你收集整理的《数据中心设计与运营实战》——2.6 监控基础设施的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Photoshop Lab修色圣典(修
- 下一篇: 《软件测试技术实战:设计、工具及管理》—