ARMS探針在應用運行時進行位元組碼增強,實現應用效能管理能力。與其他通過位元組碼增強技術實現的效能管理方案一樣,ARMS探針會帶來一定的應用效能開銷,但ARMS團隊已經採用多項技術對探針進行最佳化,將探針的效能開銷降低到極低的範圍,以確保應用的穩定運行。在本篇測試報告中,我們類比了真實的使用情境,測試ARMS探針在不同業務流量下帶來的效能開銷,您可以參考本篇分析報告,在接入ARMS應用監控前,基於效能影響進行充分的評估。
測試情境
整體架構如下圖所示:
Java應用基於Spring MVC架構編寫,根據壓測源發起的不同請求,會分別通過Druid架構和Jedis架構訪問MySQL和Redis服務。對於請求${mall-gateway}/case/api/v1/mysql/execute,Java應用會訪問MySQL(每接到一次請求,會訪問1~4次MySQL);對於請求${mall-gateway}/case/api/v1/redis/execute,Java應用會訪問Redis(每接到一次請求,會訪問1~10次Redis)。
測試環境
壓測源由阿里雲效能測試服務PTS提供。
Java應用、MySQL、Redis都部署在同一個阿里雲Container ServiceACK叢集中,節點執行個體類型為ecs.u1-c1m2.8xlarge,節點的作業系統版本為Alibaba Cloud Linux 2.1903 LTS 64位。
Java應用的Pod規格為2核4G,雙副本,對應的JVM參數如下所示:
-Xms3500m -Xmx3500m -XX:MetaspaceSize=500mARMS探針採用Aliyun JavaAgent 4.2.1版本。
測試流程
在不安裝ARMS探針的情況下,分別使用基於500/1000/2000 QPS,發起3次壓測,每次的持續時間長度為1小時,每次壓測前都先基於100 QPS壓測流量對Java應用進行3分鐘預熱,壓測結果將作為基準效能指標。
安裝ARMS探針,在採樣原則設定為10%固定採樣率的情況下,重複第1步的壓測,對比Java應用在CPU開銷、記憶體開銷、RT上的差異。
安裝ARMS探針,在採樣原則設定為100%固定採樣率的情況下,重複第1步的壓測,對比Java應用在CPU開銷、記憶體開銷、RT上的差異。
關於ARMS的採樣原則設定,請參見調用鏈取樣模式選擇(3.2.8及以上探針版本)。
ARMS 應用監控的準系統都將開啟,包括統計指標、調用鏈、分位元等,並開啟所有外掛程式功能;一些高階功能將暫時關閉,如調用鏈壓縮,URL收斂,脫敏開關,持續剖析等。
基準效能指標
對比項 | CPU | 記憶體 | RT |
500 QPS | 6.737% | 11.51% | 57.6 ms |
1000 QPS | 13.040% | 11.81% | 63.9 ms |
2000 QPS | 26.796% | 12.19% | 70.5 ms |
CPU 指標代表 Pod 使用的 CPU 佔總 CPU(2核) 的百分比。
記憶體指標代表 Pod 使用的記憶體佔總記憶體的百分比。由於 Pod 使用記憶體在達到 requests 值之前會自然增長,此報告取壓測結束時的記憶體真實佔用。
RT指標代表請求的平均回應時間,單位:毫秒。
安裝ARMS探針後的效能指標
對比項 | 10%採樣率 | 100%採樣率 | ||||
CPU | 記憶體 | RT | CPU | 記憶體 | RT | |
500 QPS | 8.412% | 13.72% | 58.5 ms | 9.316% | 13.91% | 58.7 ms |
1000 QPS | 16.947% | 14.14% | 64.9 ms | 18.114% | 14.42% | 65.3 ms |
2000 QPS | 34.850% | 14.64% | 74.6 ms | 35.945% | 14.67% | 76.1 ms |
採樣率對CPU影響與QPS為非線性關係,預設存在每秒Trace採集上限閾值。
探針效能開銷
對比項 | 10%採樣率 | 100%採樣率 | ||||
CPU | 記憶體 | RT | CPU | 記憶體 | RT | |
500 QPS | +1.68% | +2.21% | +0.9 ms | +2.58% | +2.40% | +1.1 ms |
1000 QPS | +3.907% | +2.33% | +1.0 ms | +5.07% | +2.61% | +1.4 ms |
2000 QPS | +8.05% | +2.45% | +4.1 ms | +9.14% | +2.48% | +5.6 ms |
分析結論
ARMS探針額外造成的CPU和記憶體開銷,都在10%以內。
ARMS探針對於RT(請求回應時間)的影響在10%以內,在1000 QPS的情況下增加約1毫秒。
在100%固定採樣率的情況下,效能開銷比10%固定採樣率略有上升。