壓測模型抽象
壓測模型可以被抽象爲如圖所示的模型
該模型主要包含如下三個部分:
壓測環境準備
環境準備是壓測的基礎,主要包括
1、壓力機資源
2、被壓測系統
3、依賴資源
壓測任務準備
壓測任務準備主要是爲了梳理壓測目標,確定壓測方案,可以細化爲如下幾個方面:
壓測目標:比如期望達到的QPS、穩定性要求。
壓測場景:業務場景的選取、組合
壓測策略:逐步加壓,增大脈衝,併發量等。
壓測執行閉環
壓測是一個不斷調整壓測參數、進行壓測、找到問題、解決問題、再次驗證等一系列過程的組合,並不能一次性就可以做到完整、極致。整個壓測過程是一個閉環過程,這個過程可以拆分爲如下幾個方面:
1、使用壓力機壓測
2、分析程序收集壓測數據(RT、QPS/TPS、成功率、錯誤、內存、CPU、I/O等)
3、分析壓測報告
4、確定優化計劃
5、反饋到壓測系統或者調整壓測策略
線下壓測模型
開發環境和壓測環境隔離。
優點
1、可以實現快速壓測。
2、壓測場景可以自由確定。
3、可以進行穩定性測試或者鏈路性能迴歸。
缺點
1、仿真度不高
2、環境部署負責
3、多個壓測任務一般不能並行
4、依賴系統可能缺失
5、測試環境和線上環境數據量不一樣
線上引流壓測模型
線上引流壓測模型是使用比較多的高仿真壓測,要求系統具備流量的控制能力,通常採用調整路由策略,其模型結構如圖所示。
優點
1、真實的業務場景測試
2、可以快速回退
3、不需要準備測試數據、壓測系統。
缺點
1、很難進行超過業務流量的壓測
2、能夠壓測單機性能,但是很難評估鏈路性能
線上全鏈路壓測模型
優點
1、高仿真
2、可以構造比日常容量大得多的請求量
缺點
1、該模型的實時成本高
難點
1、模擬請求如何構造
2、模擬流量特性和真實流量特性一致
3、模擬極端情況,熱點等