XXX壓力測試報告linux
時間:2015-08-04 測試人員:xxxapache
目錄windows
XXX壓力測試報告... 1網絡
一 測試內容... 2併發
二 測試方法... 2工具
三 測試目標... 2post
四 測試環境... 2性能
五 系統部署... 3測試
5.1 物理部署... 3spa
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個進程,每一個進程啓動10個線程,併發爲50,項目日誌開啓info狀態
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 |
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
135 |
120 |
15 |
啓10個進程,每一個進程啓動5個線程,併發爲50,項目日誌開啓info狀態
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 |
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
105 |
92 |
13 |
1 在使用jmeter壓測請求被F5轉發到apache server代理上,因爲交易處理過程當中處理時間過長形成長時間無響應,代理返回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置獲取結果返回的耗時超過3分鐘,其他耗時均低於5s,前置接收到的晚,初步斷定網絡堵塞
3 本地業務處理的錯誤緣由爲簽名、驗籤、獲取數據及請求時404等
啓10個進程,每一個進程啓動10個線程,併發爲100,項目日誌開啓info狀態
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 |
總筆數 |
Jmeter錯誤筆數 |
請求前置響應超長筆數 |
服務本地處理超長筆數和404 |
50000 |
150 |
119 |
31 |
1 在使用jmeter壓測請求被F5轉發到apache server代理上,因爲交易處理過程當中處理時間過長形成長時間無響應,代理返回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置獲取結果返回的耗時超過3分鐘,其他耗時均低於5s,前置接收到的晚,初步斷定網絡堵塞
3 本地業務處理的錯誤緣由爲簽名、驗籤、獲取數據及請求時404等
啓30個進程,每一個進程啓動5個線程,併發爲150,項目日誌開啓info狀態
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 |
暫未統計
啓20個進程,每一個進程啓動5個線程,併發爲100,項目日誌開啓info狀態,超時時間2000ms
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 |
總筆數 |
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時,交易響應時間明顯提高。
壓測過程當中出現的錯誤主要有:
一、 請求資源404錯誤
二、 請求前置網絡堵塞,每次均爲3分鐘
三、 本地簽名、驗籤、獲取數據耗時過長
最終壓測結果TPS:90-100時可保證響應時間不超過2s