1、概念及公式
QTS:每秒查詢率,衡量單個接口
TPS:每秒事務數,衡量多個接口,決定系統性能,與並發數無關
RPS:每秒請求數,
RT:響應時間
- 系統響應時間:
系統一次調用的響應時間跟項目計划一樣,也有一條關鍵路徑,這個關鍵路徑就是系統響應時間,關鍵路徑是由CPU運算、IO、外部系統響應等組成。
響應時間= 網絡傳輸時間 + 應用服務器處理時間 + 數據庫服務器處理時間
- 並發用戶數(Vu)獲取
新系統:沒有歷史數據作參考,只能通過業務部門進行評估。
舊系統:對於已經上線的系統,可以選取高峰時刻,在一定時間內使用系統的人數,這些人數認為屬於在線用戶數,並發用戶數取10%就可以了,例如在半個小時內,使用系統的用戶數為10000,那么取10%作為並發用戶數基本就夠了
- TPS獲取
新系統:沒有歷史數據作參考,只能通過業務部門進行評估。
舊系統:對於已經上線的系統,可以選取高峰時刻,在5分鍾或10分鍾內,獲取系統每筆交易的業務量和總業務量,按照單位時間內完成的筆數計算出TPS,即業務筆數/單位時間(5*60或10*60)
並發用戶數:輔助衡量系統性能,一般不用來衡量系統性能
QPS = 並發量 / 平均響應時間,
TPS波動率T = (TPS標准差/TPS平均值)*100%
2、壓測前的准備:https://blog.csdn.net/weixin_33805743/article/details/88700742
(1)壓力測試策略:負載測試策略,按照梯度施壓的方式去加用戶數,當達到瓶頸的時候就可進行參數調整和優化
(2)建立壓測分支:
(3)搭建壓測環境:
(4)准備測試腳本:
(5)初步壓測及分析:
(6)深入壓測及分析
3、TPS上不去
1、網絡帶寬
2、連接池:服務器連接池(比如Tomcat)和數據庫連接池(或者理解為最大允許連接數也行)。
3、垃圾回收機制
4、數據庫配置:寫入數據庫且需要寫入多個表的時候,如果數據庫的最大連接數不夠,或者寫入數據的SQL沒有索引沒有綁定變量,抑或沒有主從分離、讀寫分離等,就會導致數據庫事務處理過慢,影響到TPS。
5、通信連接機制:串行、並行、長連接、管道連接等,不同的連接情況,也間接的會對TPS造成影響。
6、硬件資源:包括CPU(配置、使用率等)、內存(占用率等)、磁盤(I/O、頁交換等)。
7、壓力機:比如jmeter,單機負載能力有限,如果需要模擬的用戶請求數超過其負載極限,也會間接影響TPS(這個時候就需要進行分布式壓測來解決其單機負載的問題)。
8、壓測腳本:進行階梯式加壓測試,最大的模擬請求數超過了設置的線程數,導致線程不足。
9、業務邏輯:業務解耦度較低,較為復雜,整個事務處理線被拉長導致的問題。
10、系統架構:比如是否有緩存服務,緩存服務器配置,緩存命中率、緩存穿透以及緩存過期等,都會影響到測試結果。
轉:https://blog.csdn.net/u011197146/article/details/83273879
https://blog.csdn.net/taric_ma/article/details/77285522
連接池與線程:https://www.cnblogs.com/imyalost/p/7189455.html
常見術語:https://www.cnblogs.com/imyalost/p/7117320.html
連接管理:https://www.cnblogs.com/imyalost/p/7887667.html
APP接口測試:https://blog.csdn.net/whorus1/article/details/50681678