[已解決] Active Threads 影像在 Jmeter 和 Grafana 不一致的問題。

Duke發表於2025-01-20

一、具體現象:當使用 Jmeter 進行效能測試時, "Active Threads Over Time" 外掛生成的影像與 Grafana 中 "Active Threads" 皮膚中的影像不一致。


二、分析過程:

  1. 從影像資訊來分析, Jmeter 影像所表達的是 “某時刻活躍的程序數量”,而 Grafana 影像所表達的是 “測試過程中,曾經活躍的最大執行緒數”。
  2. 透過檢視 Json Model 中 "Active Threads" 部分發現,Model 規定 last(maxAT) 作為 active thread 的數量被標記在 Grafana 上。

  3. 檢視 Influxdb 可以發現,隨著時間推移,當某時刻達到最大活躍執行緒數時,後續所有數值都記錄為最大活躍執行緒數。

  4. Influxdb 執行緒數相關指標
    test.minAT-Min active threads:最小活躍執行緒數
    test.maxAT-Max active threads:最大活躍執行緒數
    test.meanAT-Mean active threads:活躍執行緒數
    test.startedT-Started threads:啟動執行緒數
    test.endedT-Finished threads:結束執行緒數

三、最佳化:修改 Model 中的語句, 使用 last(startedT) - last(endedT)替換 last(maxAT) 作為某時刻的執行緒數。


四、瑕疵:這種方法只能保證影像相似,但不能保證資料也完全一致;所以此方法適合資料展示,如果要分析問題,還是以 Jmeter 的影像來分析較好。

五、疑問:是否有大佬知道, Grafana 的 "Active Threads" 皮膚表達的內容,究竟是 “某時刻的活躍執行緒數” 還是 “最大活躍執行緒數” ?

相關文章