1. 程式人生 > >PTS + ARMS打造效能和應用診斷利器

PTS + ARMS打造效能和應用診斷利器

摘要: 服務端的效能測試,尤其是業務效能測試,是用來評估效能容量、診斷效能瓶頸和應用錯誤,或是驗證高可用的能力,以此達到降低成本、提升使用者體驗的目的。但是,當需要有進一步的定位和刨析時,這類效能測試就會顯得有點捉襟見肘。

服務端的效能測試,尤其是業務效能測試,是用來評估效能容量、診斷效能瓶頸和應用錯誤,或是驗證高可用的能力,以此達到降低成本、提升使用者體驗的目的。但是,當需要有進一步的定位和刨析時,這類效能測試就會顯得有點捉襟見肘。本文將介紹PTS + ARMS的經典組合,在效能容量評估、效能瓶頸診斷和應用錯誤診斷方面的實踐方案。

效能測試PTS(Performance Testing Service)

脫胎於阿里全鏈路壓測平臺,是簡單、直接的雲化效能測試工具,可幫助使用者輕鬆模擬海量訪問的真實業務場景,支援所需資源隨時發起,免去搭建和維護成本。

業務實時監控服務ARMS (Application Real-Time Monitoring Service)

是一款APM類的全鏈路(Tracing)監控產品。使用者可基於ARMS的前端、應用和自定義監控,快速構建實時的業務監控能力。

適用行業

PTS + ARMS 組成的經典壓測監控方案,不僅已服務於淘寶、天貓等阿里巴巴集團內部使用者,也正應用於其他多個行業,包括電子商務、網際網路金融、遊戲、新媒體、政府及大型央企等,支援新版本效能基線測試、大促場景測試和線上容量規劃等場景。

典型應用場景

  • 評估效能容量

以某知名線上教育平臺為例,使用者希望以最小的成本應對常態化的選課高峰,同時,在流量峰值的情況下,使用者體驗不能下降。

根據木桶原理,容量最小的系統也就是木桶最短的板決定了站點的能力。使用者需要做的是識別短板,通過調整長短板之間的機器配比達到拉平系統水位的目的,那麼即使是同樣數量的機器也可以提供更大的業務吞吐量,甚至不用額外擴容。

通過PTS整合雲監控和ARMS監控,不僅可以準確判斷特定配置下的系統性能容量瓶頸,同時還能定位效能基線的配置短板,如系統性能、資料庫瓶頸、程式碼問題等。效能容量評估分為以下3個步驟:

  1. 使用PTS快速構建高模擬業務壓測;
  2. 通過PTS控制檯一站式觀察壓測發起側(客戶側)及服務側(雲監控)的端到端全監控,瞭解高壓下的業務表現和各核心系統的效能水位情況;
  3. 再通過ARMS整合,快速找到應用瓶頸點,列出介面快照,結合系統性能診斷慢快照具體耗時原因,如系統性能,慢SQL,或其他程式碼問題。

  • 診斷效能瓶頸

除了調整容量配比,PTS + ARMS還可以通過探測和識別系統瓶頸點,以提高站點效能的方式,進一步提升同樣機器數量情況下的整體容量水位。

以線上教育平臺上通過瀏覽器登入為例,最常見的一個操作流程是:登入 -> 根據使用者的屬性資訊列出可選的課程列表 -> 使用者通過查詢條件進行準確的查詢或者篩選 -> 選中最終的課程進行提交。

這個流程,作為一個事務,是有嚴格的先後順序的。在PTS中就是一個串聯鏈路。藉助PTS對cookie的友好支援,整個鏈路都可以通過PTS配置出對應的壓力測試流量,並藉助ARMS進行監控,從而觀察、分析效能瓶頸。

此外,使用者還可以通過PTS發現介面呼叫效能瓶頸拐點,一鍵跳轉到ARMS中,並基於具體執行緒刨息,發現具體程式碼棧內的效能瓶頸拐點,從而為優化程式碼效能,提供程式碼棧級別的證據。

效能瓶頸診斷分為以下3個步驟:

  1. 使用PTS快速構建壓測並一站式觀察相關應用的介面呼叫耗時,尋找效能瓶頸點;
  2. 使用ARMS觀察對應應用的介面耗時,並找到對應的慢介面呼叫的執行緒進行刨析;
  3. 通過執行緒刨析找到對應介面的執行緒快照,分析效能瓶頸。

  • 診斷應用錯誤

診斷應用錯誤是企業級網際網路應用正式上線前的另一大場景。這類錯誤雖然一般不會直接影響呼叫耗時從而造成效能瓶頸,但是仍然會由於業務錯誤引發糟糕的使用者體驗。

應用在基線效能下除了耗時以外,通常還可能被返回各類呼叫錯誤,典型的有:

  1. 超時錯誤(timeout):當後端服務來不及響應時,可能會在客戶端造成timeout 錯誤;
  2. 熔斷錯誤:該類錯誤主要是被各類熔斷元件觸發(如Sentinal), 保護後端應用效能;
  3. 其他系統元件引起的錯誤:如效能超載引起的IOException等。

通過PTS + ARMS的經典組合,可以在壓力增加時,有效發現以上的各類錯誤。

此外,基於PTS的施壓側監控和多維度監控特性,還可以通過ARMS整合關聯到具體的錯誤異常詳情,定位到具體錯誤丟擲的詳細程式碼,從而以指數級別提高壓測場景下的介面錯誤診斷效率,錯誤介面診斷分為以下3個步驟:

  1. 使用PTS,觀察壓測增加時是否發生業務異常/錯誤;
  2. 使用ARMS,觀察對應應用的總體錯誤呼叫,判斷問題點。
  3. 開啟錯誤的異常詳情,通過異常的快照詳情判斷根系錯誤根因。

可見,PTS通過整合ARMS的監控能力,可將關鍵的服務端效能指標整合到壓測的整體監控中,以達到更快速、更便捷地識別問題的目的,降低使用者的運維負擔。

阿里雲雙十一1折拼團活動:已滿6人,都是最低折扣了

【滿6人】1核2G雲伺服器99.5元一年298.5元三年 2核4G雲伺服器545元一年 1227元三年

【滿6人】1核1G MySQL資料庫 119.5元一年

【滿6人】3000條國內簡訊包 60元每6月

參團地址:http://click.aliyun.com/m/1000020293/

原文連結