XXX壓力測試報告
時間:2015-08-04 測試人員:xxx
目錄
XXX壓力測試報告... 1
一 測試內容... 2
二 測試方法... 2
三 測試目標... 2
四 測試環境... 2
五 系統部署... 3
5.1 物理部署... 3
5.2 網路訪問... 3
六 效能測試結果與分析... 4
6.1 jmeter叢集壓測(5程式-每個進行10執行緒)... 4
6.2 jmeter叢集壓測(10程式-每個進行5執行緒)... 7
6.3 jmeter叢集壓測(10程式-每個進行10執行緒)... 11
七 結果彙總分析... 13
一 測試內容
本次測試是針對xxx系統進行的壓力測試,在交易介面中,只對交易介面進行壓力測試,其中涵蓋資料驗籤與簽名功能。
二 測試方法
本次採用apache的開源測試工具jmeter,採用本地動態拼裝請求資料並通過http協議post方式傳送支付請求。並採用650張測試銀行卡測試,其中大概有30張存在“無足夠的存款”和“受限制的卡”情況。
三 測試目標
1) 獲取在單機部署情況下最大TPS值
2) 是否可以達到原來預期值TPS:50
四 測試環境
環境 |
機器型號 |
作業系統 |
硬體cpu |
硬體mem |
客戶端 |
server2008虛擬機器 |
windows |
32核 |
32G |
服務端 |
HP DL580 |
linux |
64核 |
126G |
由於客戶端與服務端的機器效能優秀,暫不會對壓測形成瓶頸,該方面影響可以忽略
五 系統部署
5.1 物理部署
5.2 網路訪問
六 效能測試結果與分析
6.1 jmeter叢集壓測(5程式-每個進行10執行緒)
啟5個程式,每個程式啟動10個執行緒,併發為50,專案日誌開啟info狀態
6.1.1 聚合報告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
22805 |
547 |
366 |
512 |
636 |
5218 |
150 |
30003 |
0.26 |
65.3 |
96.5 |
2 |
33605 |
519 |
362 |
503 |
618 |
5200 |
150 |
30003 |
0.21 |
66.5 |
98.5 |
3 |
43505 |
536 |
365 |
508 |
621 |
5210 |
150 |
34899 |
0.26 |
65.6 |
97.1 |
4 |
48205 |
527 |
365 |
507 |
618 |
5206 |
150 |
34899 |
0.24 |
65.1 |
96.3 |
5 |
49005 |
535 |
364 |
507 |
616 |
5211 |
150 |
34899 |
0.27 |
63.9 |
94.5 |
6 |
49901 |
532 |
364 |
505 |
614 |
5207 |
150 |
34899 |
0.27 |
61.0 |
90.2 |
7 |
50000 |
531 |
363 |
504 |
613 |
5207 |
150 |
34899 |
0.27% |
60.9 |
90.1 |
6.1.2 每秒的響應分佈圖
6.1.3 響應時間分佈圖
6.1.4 請求失敗與成功分佈圖
6.1.5 結果分析
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
135 |
120 |
15 |
- 在使用jmeter壓測請求被F5轉發到apache server代理上,由於交易處理過程中處理時間過長造成長時間無響應,代理返回502 Proxy Error錯誤。
- 其中請求前置響應超長筆數在向前置獲取結果返回的耗時超過3分鐘,其餘耗時均低於5s,前置接收到的晚,初步判定網路堵塞
- 本地業務處理的錯誤原因為簽名、驗籤、獲取資料及請求時404等
6.2 jmeter叢集壓測(10程式-每個進行5執行緒)
啟10個程式,每個程式啟動5個執行緒,併發為50,專案日誌開啟info狀態
6.2.1 聚合報告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
11010 |
555 |
348 |
495 |
605 |
5196 |
148 |
30003 |
0.26 |
68.7 |
101.5 |
2 |
28910 |
507 |
333 |
473 |
568 |
5178 |
55 |
30015 |
0.25 |
76.3 |
121.9 |
3 |
36310 |
501 |
332 |
475 |
575 |
5176 |
55 |
30031 |
0.24 |
77.1 |
114.0 |
4 |
46310 |
485 |
331 |
466 |
557 |
5172 |
55 |
30031 |
0.21 |
78.6 |
116.3 |
5 |
50000 |
478 |
326 |
460 |
551 |
5166 |
55 |
30031 |
0.21 |
72.1 |
106.7 |
6.2.2 每秒的響應分佈圖
6.2.3 響應時間分佈圖
6.2.4 請求失敗與成功分佈圖
6.2.5 應用系統狀態
6.2.6 結果分析
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
105 |
92 |
13 |
1 在使用jmeter壓測請求被F5轉發到apache server代理上,由於交易處理過程中處理時間過長造成長時間無響應,代理返回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置獲取結果返回的耗時超過3分鐘,其餘耗時均低於5s,前置接收到的晚,初步判定網路堵塞
3 本地業務處理的錯誤原因為簽名、驗籤、獲取資料及請求時404等
6.3 jmeter叢集壓測(10程式-每個進行10執行緒)
啟10個程式,每個程式啟動10個執行緒,併發為100,專案日誌開啟info狀態
6.3.1 聚合報告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
50000 |
1219 |
896 |
1665 |
2692 |
5808 |
209 |
38306 |
0.30 |
68.0 |
100.5 |
6.3.2 每秒的響應分佈圖
6.3.3 響應時間分佈圖
6.3.4 請求失敗與成功分佈圖
6.3.5 結果分析
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
150 |
119 |
31 |
1 在使用jmeter壓測請求被F5轉發到apache server代理上,由於交易處理過程中處理時間過長造成長時間無響應,代理返回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置獲取結果返回的耗時超過3分鐘,其餘耗時均低於5s,前置接收到的晚,初步判定網路堵塞
3 本地業務處理的錯誤原因為簽名、驗籤、獲取資料及請求時404等
6.4 jmeter叢集壓測(30程式-每個進行5執行緒)
啟30個程式,每個程式啟動5個執行緒,併發為150,專案日誌開啟info狀態
6.4.1 聚合報告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
150000 |
1473 |
1924 |
1733 |
1959 |
6156 |
222 |
35107 |
0.21 |
89.5 |
132.2 |
6.4.2 每秒的響應分佈圖
6.4.3 響應時間分佈圖
6.4.4 應用系統狀態
6.4.5 客戶端系統狀態
6.4.6 結果分析
暫未統計
6.5 jmeter叢集壓測(20程式-每個進行5執行緒)
啟20個程式,每個程式啟動5個執行緒,併發為100,專案日誌開啟info狀態,超時時間2000ms
6.5.1 聚合報告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
200000 |
867 |
722 |
1073 |
1296 |
5674 |
1 |
10053 |
0.84 |
92.8 |
138.6 |
6.5.2 每秒的響應分佈圖
6.5.3 響應時間分佈圖
6.5.4 請求失敗與成功分佈圖
6.5.5 結果分析
總筆數 |
Jmeter錯誤筆數 |
TPS |
100000 |
730 |
98.0 |
1 由於本地客戶端限定2000毫秒不響應就認為失敗,所以失敗率偏高
七 結果彙總分析
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
程式 |
執行緒 |
併發 |
Error% |
TPS |
KB/sec |
50併發 |
50000 |
531 |
363 |
504 |
613 |
5 |
10 |
50 |
0.27% |
60.9 |
90.1 |
50併發 |
50000 |
478 |
326 |
460 |
551 |
10 |
5 |
50 |
0.21 |
72.1 |
106.7 |
100併發 |
50000 |
1219 |
896 |
1665 |
2692 |
10 |
10 |
100 |
0.30 |
68.0 |
100.5 |
150併發 |
150000 |
1473 |
1924 |
1733 |
1959 |
30 |
5 |
150 |
0.21 |
89.5 |
132.2 |
100併發 |
200000 |
867 |
722 |
1073 |
1296 |
20 |
5 |
100 |
0.84 |
92.8 |
138.6 |
使用jmeter壓測時,如果使用1個程式開多個執行緒進行壓測,一個程式很難快速處理多個執行緒,造成本地處理浪費大量時間用於排程,最終壓力上不去。
當採用叢集壓測時,啟用多個程式排程少量執行緒,解決本地耗時,TPS明顯提升。
在啟動10個程式50執行緒時效果最佳,符合交易每秒鐘處理的交易筆數,當提升併發到100時,交易響應時間明顯提升。
壓測過程中出現的錯誤主要有:
1、 請求資源404錯誤
2、 請求前置網路堵塞,每次均為3分鐘
3、 本地簽名、驗籤、獲取資料耗時過長
最終壓測結果TPS:90-100時可保證響應時間不超過2s
說明:轉載自http://www.cnblogs.com/atwanli/articles/4908475.html,感謝作者分享!