我正在嘗試使用JMeter來查找應用程序的可伸縮性點。我將可擴展性定義爲「任何增加不再增加吞吐量的最小併發用戶數」。使用JMeter查找應用程序的可伸縮性點
我正在使用以下技術。安排我的負載測試運行一個小時,啓動一個每30秒發送一次SOAP/XML-RPC請求的新線程。我通過將線程數設置爲120,並將加速期設置爲3600秒來完成此操作。
然後在我的總結報告監聽器中查看我的TOTAL行吞吐量。每隔30秒添加一個新行(線程),總吞吐量數量將上升,直到80個線程在我的情況下處於活動狀態後,每秒大約123個請求達到穩定狀態。隨着最後20個線程的添加,它會慢慢將吞吐量數降至每秒120個。然後我得出結論:我的應用程序可伸縮性點數爲80個活動用戶每秒123個請求。
我的問題是,這是一種有效的方法來找到一個應用程序的可擴展性點還是有不同的技術,我應該嘗試?
我已經執行了其他負載測試,它反映了API和其他重負載測試的實際使用情況,涵蓋了我所有的請求類型。 我正在測試的API有8種不同類型的請求和響應。 對於此測試,我選擇了一個一致返回最大大小的XML響應數據的請求。 我將結果保存到CSV JTL文件,我已將圖應用到JTL文件(如響應時間圖)。 我同意我在測試運行時以非常規方式使用加速期來添加用戶。 – Mike
回答您的一些問題: 我的請求沒有達到緩存。 對於這種類型的測試,我不認爲我需要隨機請求,因爲我只是想確定當用戶緩慢添加時,我的服務器可以產生的最大吞吐量。 更改加速期以便每10或20秒添加一個新用戶不應影響結果,除非我在結果中更快地達到最大吞吐量(我應該可能會測試此內容,但需要進行確認)。 其他人對這種找到可擴展性點的技巧有任何想法嗎? – Mike
我也確保使用一些應用程序性能監視解決方案,如New Relic。雖然JMeter將提供端到端的負載和響應時間,但看到後端性能KPI非常有價值。 –