存儲和分析

數據收集起來后,除了一部分實時的數據存在本地數據庫,幾乎全部的歷史數據都會存儲在公司級的數據平臺中。這個數據平臺提供了豐富的工具系統(tǒng),功能全面,涵蓋了數據存儲、分析、實時計算等。例如,TPG是基于postgreSQL的數據庫,用于存放TDW(Tencent distributed Data Warehouse騰訊分布式數據倉庫)離線分析后的結果數據,便于系統(tǒng)調用(如服務器利用率分析,故障分析、服務器生命周期等生產數據);Hbase基于No SQL,萬億級的分布式、有序數據存儲,用于存放分析后的結果數據(如溫度功耗分析結果數據)。整體的架構如下圖所示。

大數據的四個實踐

大數據的規(guī)劃分析,決策者和開發(fā)者首先要從業(yè)務驅動的角度,選擇數據生產的業(yè)務場景,即要預計數據分析得到的結果能帶來哪些效益。根據公司服務器運營的特點,我們在以下四個場景做了大數據的分析和應用,給實際的運營帶來的實實在在的好處。

硬盤故障預測

硬盤是服務器硬件故障率最高的一個部件,如果能提前預測到硬盤故障,對業(yè)務體驗、完善備件管理都有莫大的收益。這也是基礎架構運營在經歷自動化、流程化后,需要進一步提升運營效率、降低運營成本的天然要求。

涉及硬盤的運營數據包括業(yè)務IO數據、硬盤內部的SMART和硬盤運行的環(huán)境變量數據(溫度和濕度)。目前,運營系統(tǒng)對IO數據是每小時采集一次,SMART數據每三小時采集一次,溫度和濕度每半小時采集一次,這些數據合計起來每天的記錄數上億條。硬盤故障預測,適合使用分類算法,我們使用了目前較為流行的SVM分類算法,輔以合適的核函數來加快學習計算的效率。

經過了一年多時間的實踐,走了不少彎路,也碰到了很多坑,在硬盤故障標準確定、業(yè)務IO分類定義等方面吃了不少的虧,我們在基于SMART數據做的故障預測,達到了令人滿意的效果。在實際運營環(huán)境中驗證的結果如下:準確率precision達到98%,預測時間leadtime的整體偏差不超過2天。

需要重點指出的是,我們做的預測結果,除了training階段用歷史數據外,驗證的過程是用現網的實時數據來進行的。就是說,經過SVM算法得到的預測模型后,我們是用最新采集的實時數據輸入到模型中,得到的ok和fail兩種預測結果,在3天、7天、14天后再對預測的結果進行驗證。這個比傳統(tǒng)的預測方式(訓練和驗證都是使用歷史數據),對現網應用的價值大大提高了。目前在現網環(huán)境中,主要的落地場景包括:1)預測出來的結果,經過運營流程,對BG業(yè)務提前發(fā)出預警,以提高業(yè)務運維效率 2)根據預測出來的大規(guī)模硬盤故障,對備件進行有效管理。

服務器利用率分析

騰訊的業(yè)務類型和機型都相當多,機器分配給業(yè)務后,使用的情況如何?我們需要跟蹤服務器的利用率情況,下圖是某業(yè)務某機型磁盤IO的利用率統(tǒng)計分析圖。分析過程如下:存儲類機型,看到一段時間統(tǒng)計出來的IO的利用率并不高,并且是寫少讀多的應用,是否可以考慮使用IOPS相對不高的廉價硬盤?還是業(yè)務的架構存在優(yōu)化的空間?

服務器利用率分析給運營帶來的好處在于:1)結合業(yè)務模型,發(fā)現業(yè)務應用服務器的短板,在發(fā)現并修復系統(tǒng)架構缺陷的同時,提高整體利用率;2)對機型選型的優(yōu)化,例如對于磁盤容量使用率不高的機型,在后續(xù)的機型定制中減少硬盤的數量。

故障率分析

服務器故障分析對服務器的各個部件的故障率都做了分析和監(jiān)控,包括1)生成月度故障率報表;2)故障率異常的實時監(jiān)控和自動告警;3)分析外部條件與故障率的關系;4)與OS的軟件告警信息聯動起來,及時發(fā)現服務器的亞健康狀態(tài)。

上圖是某服務器硬件最近幾周的故障率統(tǒng)計信息。按部件給出各個機型的故障率情況,及時發(fā)現批次性故障并給出告警

環(huán)境監(jiān)控

2013年8月,華東地區(qū)遭遇罕見的高溫天氣,很多機房空調制冷扛不住了,頻繁發(fā)生服務器高溫重啟的事件。如果能把機房環(huán)境溫度有效的監(jiān)控起來,我們就能在發(fā)現異常時發(fā)出高溫告警,提前采取措施。對服務器入風口溫度進行采集和監(jiān)控是一個較為有效的方案。

上圖顯示服務器入風口溫度變化的異常情況,經過數據的規(guī)整和誤差修正,產生了高溫告警。通過自動化流程,及時知會到機房現場負責人。

一些思考

不要被數據誤導

人們很容易被大數據忽悠。在很多場合我們都談了大數據強大的功能和美好的未來,認為可以解決許多社會問題,甚至預測未來。無論大數據如何神奇,若試圖用大數據引領未來只會誤入歧途,因為大數據背后本就存在著“先天不足”:從本質上看,大數據最大的缺陷就在于試圖以確定去“顛覆”混沌與不確定性。之前我們做硬盤故障預測,直觀的認為硬盤的讀寫壓力對硬盤老化和故障是有直接關系的,但經過分析,發(fā)現業(yè)務使用硬盤的隨機性太大了,硬盤響應IO的模式也很多變,對于業(yè)務的IO讀寫比例、塊大小等,有太多的不確定性,就是前面說的混沌,導致前面基于IO做的預測結果非常糟糕。其實這里要說的就是,目前這個階段,依靠大數據來指導服務器運營,不靠譜,服務器運營智能化遠遠沒有達到。這里還是要靠運營和開發(fā)人員的思維和頭腦,把自動化運營先做好。

數據質量的把控

數據的質量和字段規(guī)范性對后面分析效果的影響很大。但業(yè)務開發(fā)所設計的數據不是為了運營分析而服務的,很多情況下都是為了功能開發(fā)而存在,如果可以在系統(tǒng)構建初期進行介入,其實可用避免很多清洗工作,數據可直接投入分析使用。這里開發(fā)人員和數據分析的人員存在一個gap,如果對數據在系統(tǒng)設計中遇上各種約束的話,開發(fā)人員會覺得很痛苦,開發(fā)效率非常低;而數據分析人員卻覺得如果數據能做到工具級定制,就是連數據的表字段的名稱,注釋,連內部關系,都是由系統(tǒng)統(tǒng)一生成,這樣采集完美的。

后來,我們內部經過一段時間的討論和磨合,形成的共識。我們做的是運營系統(tǒng),歸根到底是為運營服務的,而數據分析是運營的一個重要功能。所以沒有辦法,這個問題還是需要開發(fā)階段來解決,開發(fā)人員只能克服了。

對大數據未來的設想

精細化的傳感器

對于服務器上傳感器的設計,互聯網企業(yè)有特殊的需求,對上游硬件廠商的依賴是比較高的。騰訊有大量的服務器運營數據,非常希望可以跟業(yè)界一起在數據、資源、算法等各個維度可以共享,尋求更多提高運營效率的途徑。這里的傳感器也可以從廣義上來展開,除了服務器物理上的sensor越來越多,在服務器各個運營環(huán)節(jié)都可以在流程中加入各種采集代碼,把服務器部署、搬遷、退役等每個細小的步驟都如實的記錄下來。運營系統(tǒng)的不斷優(yōu)化將使“傳感器”體積微型化,它將出現在生產的每一個角落,為運營決策提供更科學的數據支撐。

數據服務即開即用

隨著數據的逐步完善和開放,互聯網和企業(yè)都將建立起完善的大數據服務基礎架構及商業(yè)化模式,從數據的存儲、挖掘、管理、計算等方面提供一站式服務,將各行各業(yè)的數據孤島打通互聯。而且數據應用的生態(tài)系統(tǒng)也將變得非常成熟,甚至出現用戶與數據服務商之間的算法提供商,他們有專業(yè)領域內的精英人才,通過數據挖掘的方式,尋找事物間的聯系。用戶只需將其原始數據導入,提供商很快的就能在線的將分析結果返回,如水和電一樣,即開即用。

分享到

sunyingying

相關推薦