ArchSummit深圳APM专场总结:性能监控与调优实践干货分享
隨著應用性能管理(APM)越來越被開發和運維人員所熟知,7月17日在深圳召開的ArchSummit 2015全球架構師峰會特開設應用性能管理專場,來自聽云、騰訊和OPPO的講師分享了他們在性能監控、管理和調優上的實踐經驗。
\\全網應用性能監控方式與業務級運維
\\APM 領域今年在國內資本市場引起了高度關注,這其中最耀眼的要數最近在新三板上市的聽云。聽云自成立以來一直關注在網絡和性能監控領域,其產品和實力受到市場 認可。聽云技術副總裁吳靜濤分享的是《業務級運維利器》,分析了目前進行全網應用性能監控的幾種方式和它們的優劣點,以及傳統運維和業務級運維的差異。
\\自 2007年以來,移動互聯網迅猛發展,傳統的B/S架構轉變為APP+云的云/端架構。無論是終端、APP、網絡傳輸和數據中心都面臨著非常大的挑戰,而 它們的每一個環節都對最終用戶體驗有著巨大的影響,因此,傳統的性能監控也面臨著巨大挑戰,新的應用性能管理需要能監控從整個網絡到終端、數據中心的性能 情況。
\\目前的應用性能監控主要分主動式監控和被動式監控兩種,主動式監控指的是通過布設監控 點對應用和服務進行抽樣式監控,被動式則指收集應用的日志和其它數據然后通過分析達到監控目的。主動式監控的優點是非侵入式,不影響性能,可做發布前、發 布后監測,缺點是監測網絡節點與真實用戶的行為存在差異,而網絡部署成本也高。被動式監控的優點是可覆蓋全樣本,準備性高,并且成本較低,缺點是無法提供 競品和對標數據,插碼會帶來工作量和性能的影響。開發者應該根據自己的需求選用不同的方式。
\\應用性能監控根據目標的不同又分為客戶端監控和服務端監控。
\\客戶端監控方式如下:
\\- 基于自動化測試的撥測:主動式監控,客戶端監控。主要通過覆蓋全面的監測網絡,部署自動化的監測工具。\\t
- 頁面插碼監測:被動式、客戶端監控。主要通過在客戶端瀏覽器插入JavaScript代碼以采集最終用戶的性能體驗,W3C推出了Web性能API標準,現在已經可以做大非常細粒度的監控。\\t
- 移動應用性能采集。因為移動端應用有多種方式,原生應用、Hybrid App以及Web App,因此監控的方式也多樣化,有通過手機瀏覽器自動撥測、嵌入SDK、HTML5頁面內插件、JSBridge等方式。\
僅部署客戶端APM存在局限性,它受網絡影響嚴重,無法精準定位服務端的問題。因此要做到全網的性能監控,服務端APM必不可少。
\\服務端APM一般采用被動式監控,并且已經有一些成熟的ITOA工具如ELK技術棧,它的實現方式分為旁路監聽和應用內探針。
\\- 服務端旁路監聽:部署定位后通過SPAN,TAP旁路應用訪問流量進行Sniffer,解析網絡報文后再進行各類TCP協議分析和性能采集(NPM)。它的優點是非侵入式,對生產影響最小,缺點是難以適配多種協議,無法定位到問題代碼等。\\t
- 應用內探針:通過在應用代碼中埋點來實現性能監控BCI(ByteCode Instrumentation)技術。優點是可實現代碼級的監控,缺點是它是侵入式的,對性能有輕微影響。\
通過這些方式可實現端到端的應用性能監控,從而讓運維從傳統運維進入到業務級運維的新階段。
\\傳統運維的各崗位角色是割裂的,客服、外網監控、網絡運維、研發、DBA log等都只對自己的領域負責,溝通成本很高。業務級運維通過一個平臺來將業務、網絡、主機、運維、研發各個角色聚合在一起,統一解決業務、運維、開發團隊的問題,從而為業務提供堅實的保障。
\\騰訊社交網絡端到端運維監控體系揭秘
\\騰訊社交網絡面對海量用戶,一個強大的應用性能監控平臺是必須的,騰訊內部也一直在這方面投入精力。騰訊SNG社交平臺運維負責人梁安定給大家分享了他們對運維和ITOA的理解和騰訊內部APM平臺系統的研發。
\\在騰訊,運維分為ITOM和ITOA,前者注重效率,后者注重監控,而ITOA又分為運維自動化和運營分析。ITOA的高級產品形式分三種:APM類、日志分析類和端到端的立體化監控類。這幾種方式各有利弊:
\\- ITOA之APM:這里指的是第三方APM,它的優勢在于對遺留系統、IT能力弱的組織、性能問題頻發的系統支持較好,能降低故障定位時間、提升用戶體驗,它們的挑戰來自于對微服務和標準化的支持。這一類的代表有聽云、AppDynamics、New Relic。\\t
- ITOA之日志分析:它的優勢在于更貼近業務的日志獲取,更多元化的日志分析,以及更多價值化的數據呈現。它 也能降低故障定位時間,提升用戶體驗,體現IT運營的業務價值。它的挑戰來自海量日志的收集和處理,以及數據服務的SAAS化能力。這一類的代表有 splunk、sumologic,以及開源的ELK方案。\\t
- ITOA之立體化監控:它的優勢在于貼近用戶的故障發現能力,更全面的故障告警能力,挑戰在于監控理念的轉變、監控的SaaS化能力。\
騰訊的運維體系包括DevOps理念的織云系統,以及立體化監控,后者包括端到端監控、用戶端監控、服務端監控和基礎監控。
\\在 這之外,面對極度復雜的業務架構,騰訊開發了端到端的智能監控系統ROOT,基于業務架構,結合數據流關系,通過時間相關性、面積權重等算法,將監控告警 進行篩選分類,發掘有業務價值的告警,并直接分析給出告警根源。它解決的是業務架構隨著時間發展越發龐大而復雜,運維監控系統在多個節點對同一現象出現大 量告警,而真正的原因告警被淹沒。
\\比如,如果DB宕機,我們的理想是智能定位到數據層監控,然后發出告警,但現實是,用戶端、接入層、邏輯層、數據層的監控點均有N個告警產生。ROOT可以解決這種問題,從現象告警轉變到原因告警。
\\ROOT的研發是和業務緊密相關的,在基礎數據層面,梳理業務架構,繪制業務拓撲圖,同時實現業務之間訪問關系降維。在計算邏輯上,則通過相關時間告警疊加、鏈路權重計算、過濾噪點、原因模型分析,最后實現根源告警。
\\ROOT架構上有兩個重點是業務訪問關系鏈路池和原因告警分析模型集,這些都是平時經過分析歷史告警信息和業務架構得出,最后給出的告警信息包括現象、原因、歷史同類/類似告警以及責任人。
\\梁安定最后總結道:每款互聯網產品面對的問題不盡相同,雖然APM的應用場景很廣,但在DevOps協同合作的前提下,應尋求共同的目標將價值最大化。
\\移動應用性能分析與總結
\\接下來由聽云移動研發總監江賽給大家帶來的分享:《移動應用性能分析與總結》,主要講了5點:
\\全網訪問速度優化
\\最后出場的是來自OPPO數據中心的負責人黃良懿,他分享的是訪問速度優化方面的一些實踐經驗。
\\訪問速度優化分為網絡優化、服務端優化、瀏覽器前端優化,以及由于移動互聯網的特殊性帶來的移動客戶端優化。其中,優化 工作的側重點分布是:前端占60%,網絡占25%,后端占15%。
\\在優化之前,首先要有基準,Web性能優化的指標有:
\\- DNS resolution time:DNS解析時間\\t
- TCP connection time:TCP連接時間\\t
- HTTP redirect time:HTTP重定向時間\\t
- Time to first byte:首包時間\\t
- HTML content time + Page parse time = DOM loaded time: 頁面下載完成時間+頁面解析時間=DOM加載時間\\t
- First paint time:首次繪制時間\\t
- Above the fold time:首屏時間\\t
- Full page object load time:加載完成時間\
網絡優化的手段包括DNS優化、網絡連接優化、線路優化。常見問題包括測試與真實用戶差異如DNS污染、峰谷時段問題,南北互聯互通問題,延遲加大引發的狀態同步問題等。
\\服務端優化手段包括盡早刷新緩沖區,Facebook BigPipe解決方案,以及通過異步API、并行處理等方式實現頁面生成時間加速。
\\瀏覽器前端的優化已經有一些成熟的規范和流程,如ySlow rules和Google pagespeed, 調優常用工具有firebug+ySlow+pagespeed、Apache Benchmark、Dynatrace AJAX Edition、聽云Network等。常見手段有降低請求數(很有效但也帶來不少問題)、降低傳輸量、提高并發性能、加速可響應時間、定位TTI問題、 合理利用帶寬等。
\\移動客戶端訪問速度優化手段包括資源預取、自建DNS、數據訪問策略優化,以及在嵌入WebView時,使用Native接管WebView的網絡及緩存,WebView只管渲染內容,以此突破webView的局限性。
\\由于篇幅所限,本文只是略微總結了講師們的分享,有更多精彩之處未能一一傳達,如果你覺得意猶未盡,歡迎下載ArchSummit深圳APM專場的PPT,也可通過StuQ在線查看,我們后續還會整理演講的視頻,通過InfoQ與大家分享。
總結
以上是生活随笔為你收集整理的ArchSummit深圳APM专场总结:性能监控与调优实践干货分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 是社会主义的本质要求答案
- 下一篇: 我的世界怎么驯服骷髅马?骷髅马驯服方法说