作為後端工程師,除了實作業務需求之外,需要考慮的就是自己寫的服務,在大并發下是否能正常運作了。但是,在一般開發情況下,沒那麼多大并發情況讓你測試,那該怎麼辦呢?
這時候,我們就可以用到apache的壓力測試工具了,apache bench簡稱ab。下面介紹如何使用apache ab性能測試工具進行系統壓力測試。
一、介紹
ab是apache自帶的壓力測試工具,ab是apache bench指令的縮寫。
當安裝完apache後,就可以在bin下面找到ab.exe然後進行apache 負載壓力測試。指令格式如下:

ab測試工具主要有以下兩個功能:
(1)ab指令會建立多個并發通路線程,模拟多個通路者同時對某一URL位址進行通路。它的測試目标是基于URL的,是以,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。
(2)ab指令對發出負載的計算機要求很低,它既不會占用很高CPU,也不會占用很多記憶體。但是自己測試使用也需要注意,否則一次上太多的負載。可能造成目标伺服器資源耗完,嚴重時甚至導緻當機。
二、如何使用
ab壓力測試工具使用非常簡單,隻需一個指令即可。
示例:ab -n 200000 -c 20000
http://192.168.1.179/>>d:1.html
-n:請求數
-c:并發數
上面的示例表示:每次并發20000個請求,總共請求200000次,并把結果輸出到指定檔案裡。
執行結果:
三、結果參數解釋
參數說明:
Document Length: 315 bytes HTTP響應資料的正文長度
Time taken for tests: 0.914 seconds 所有這些請求處理完成所花費的時間
Complete requests: 800 完成請求數
Failed requests: 0 失敗請求數
Total transferred: 393600 bytes 網絡總傳輸量
HTML transferred: 252000 bytes HTML内容傳輸量
Requests per second: 875.22 [#/sec] (mean) 吞吐量-每秒請求數
Time per request: 914.052 [ms] (mean) 伺服器收到請求,響應頁面要花費的時間
Time per request: 1.143 [ms] (mean, across all concurrent requests) 并發的每個請求平均消耗時間
Transfer rate: 420.52 [Kbytes/sec] received 平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導緻響應時間延長的問題
網絡上消耗的時間的分解:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.5 1 3
##連接配接的最小時間,平均值,中值,最大值
Processing: 245 534 125.2 570 682
Waiting: 11 386 189.1 409 669
Total: 246 535 125.0 571 684
整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間
其中 50% 的使用者響應時間小于 571 毫秒
80 % 的使用者響應時間小于 652 毫秒
最大的響應時間小于 684 毫秒
最後
以上,使用apache ab性能測試工具進行系統壓力測試,是不是比LoadRunner簡單多了。