本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

Python探針效能壓測報告

更新時間:2024-10-30 20:01

ARMS Python探針通過monkey-patching方式增加可觀測的監控能力,實現應用效能管理,這不可避免地帶來了一定的應用效能開銷。ARMS團隊採用多項技術對探針進行最佳化,將探針的效能開銷降低,以確保應用的穩定運行。在本篇測試報告中,我們類比了真實的使用情境,測試ARMS Python探針在不同業務流量下帶來的效能開銷,您可以參考本篇分析報告,在接入ARMS Python應用監控前,基於效能影響進行充分的評估。

測試情境

整體架構如下圖所示:

由PTS發起流量壓測,流量轉寄到Python應用上,Python應用為使用FastAPI架構搭建的Web Server,通過Python instrumentor採集Trace並產生Metric,之後將資料發送至ARMS服務端。

測試環境

  • 壓測源由阿里雲效能測試服務PTS提供。

  • Python應用部署在阿里雲Container ServiceACK叢集中,節點執行個體類型為ecs.c6.2xlarge,節點的作業系統版本為Alibaba Cloud Linux 3.2104 LTS 64位。

  • Python應用的Pod規格為2核2G,2個副本。

  • Python探針採用Aliyun Python Agent 1.0.0版本。

測試流程

  1. 開啟資料上報,在不安裝ARMS Python探針的情況下,分別使用基於500 / 1000 / 2000 QPS,發起3次壓測,每次的持續時間長度為1小時,每次壓測前都先基於100 QPS壓測流量對Python應用進行3分鐘預熱,壓測結果將作為基準效能指標。

  2. 安裝ARMS Python探針,在採樣原則設定為10%固定採樣率的情況下,重複第1步的壓測,對比Python應用在CPU開銷、記憶體開銷、RT上的差異。

  3. 關閉資料上報,開啟單個外掛程式,重複1~2步驟。

基準效能指標

對比項

CPU

記憶體

RT

對比項

CPU

記憶體

RT

500 QPS

8%

2%

17.28 ms

1000 QPS

15%

2%

36.3 ms

2000 QPS

27.12%

2%

44.9 ms

安裝ARMS Python探針後的效能指標

對比項

CPU

記憶體

RT

對比項

CPU

記憶體

RT

500 QPS

11.9%

4.8%

17.31 ms

1000 QPS

22.5%

4.8%

37.1 ms

2000 QPS

36.67%

4.8%

46.6 ms

探針效能開銷

對比項

CPU

記憶體

RT

500 QPS

+3.9%

+2.8%

+0.03 ms

1000 QPS

+7.5%

+2.8%

+0.80 ms

2000 QPS

+9.55%

+2.8%

+1.67 ms

分析結論

  1. ARMS Python探針額外造成的CPU和記憶體開銷,都在10%以內。

  2. ARMS Python探針對於RT(請求回應時間)的影響非常小。

  • 本頁導讀 (1, M)
  • 測試情境
  • 測試環境
  • 測試流程
  • 基準效能指標
  • 安裝ARMS Python探針後的效能指標
  • 探針效能開銷
  • 分析結論
文檔反饋