1. 程式人生 > >探祕手淘高可用平臺(一)——度量指標及資料平臺

探祕手淘高可用平臺(一)——度量指標及資料平臺

系列文章根據手機淘寶客戶端基礎架構高階開發工程師非臺在安卓綠色聯盟開發者大會上的分享,共分三篇,介紹手淘技術團隊效能和穩定性系統化提升方案EMAS-MOTU的設計原理以及實現思路。

本文重點介紹手淘高可用平臺的定義及指標、自動化測試框架和效能穩定性資料平臺。

 

image

 

非臺

手機淘寶客戶端基礎架構高階開發工程師

主要負責手機淘寶效能和穩定性的提升

高可用的定義及度量指標

移動端高可用定義

移動端高可⽤旨在通過設計關鍵的度量指標,以期望能夠客觀反映和量化使用者在使⽤過程的真實感受,同時通過指標,建⽴一系列的工具和平臺,從線下到線上快速發現、分析、定位和解決包括穩定性、效能、功能等各類問題,以進一步提升使用者體驗的系統化解決方案。

高可用度量指標

高可用度量指標由效能和穩定性兩大度量指標組成。效能度量指標有七個維度,分別是卡頓率、啟動時長、頁面秒開率、幀率、ANR率、流量、耗電;穩定性度量指標主要是Crash率,分為Java Crash率和Native Crash率。

 

image

 

自動化測試框架及效能穩定性資料平臺

自動化測試框架

v.qq.com/x/page/e135…

以上為手機淘寶自動化測試演示視訊。上半部分是測試同學的手勢操作,下半部分是自動化指令碼自動執行的效果。這套自動化測試框架的優點在於可以通過手勢實時生成可執行的自動化指令碼。將這套測試框架應用於暴力測試,通過不斷重複回放同一個指令碼去發現潛在的效能穩定性問題,包括記憶體洩漏、執行緒洩漏、資源洩漏等等。同時,手淘把常規的測試用例通過這套指令碼去執行,可以很好地解決P0P1常規業務的迴歸。

效能穩定性資料平臺

效能穩定性資料平臺,由四個模組組成,用來展示各個維度的監控資料。

 

image

 

1.崩潰分析

主要是Java Crash和Native Crash分析,Java Crash包含了Crash當時呼叫棧,當前頁面、使用者歷史訪問頁面、當前記憶體水位以及logcat資訊,幫助開發同學快速分析Java崩潰的原因,從而快速解決問題。Native崩潰主要包含了崩潰的訊號量、崩潰使用的呼叫棧、其他執行緒的排程棧、logcat資訊以及已載入的so資訊,通過這些資訊,可以讓開發同學快速地發現Native崩潰原因。

2.異常分析

各個效能維度的指標會在這裡展示,主執行緒卡頓主要是哪條訊息超過了閾值,它的呼叫棧是什麼樣子的。ANR展示的主要是/data/anr下的檔案資訊,發生ANR的現場是什麼樣子的。主執行緒IO這塊展示的是主執行緒操作IO的一些呼叫棧以及它的耗時。記憶體洩露這塊分兩部分,Java洩露元件的名稱,Native洩露的so名稱,通過這兩部分可以快速地定位記憶體洩露的原因。資源洩露這塊主要展示開發同學呼叫資源open時的呼叫棧資訊。

3.效能APM

啟動效能監控了使用者點選圖示到真正進入頁面可視可互動的時間。頁面效能是從點選頁面圖表到下一個頁面真正可視可互動的時間。系統監控啟動所有階段子任務的耗時,通過資料變化決策版本的釋出是否符合質量標準。如果符合質量標準,可以釋出;如果不符合,再進一步分析子任務耗時,具體是哪些任務導致不能正常釋出。快速地定位分析,最終解決問題。手淘把資料能力開放給各個業務,通過他們個性化的需求自定義配置效能報表。

4.遠端工具

遠端工具主要是針對特殊使用者的特殊案例。當線上使用者向輿情平臺反饋裝置存在某一個性能問題時,通過這個工具,快速地從使用者那裡獲取遠端日誌、Dump記憶體和每個方法的耗時,快速分析原因,從而給出解決方案。

在高可用的背後,手機淘寶技術團隊是如何進行效能及穩定性治理?EMAS-MOTU在開發的各個流程如何為手淘提供高質量保障呢?我們將會在後面的文章中進行分享,敬請期待!