APACHE自帶的併發測試工具--Apache Benchmark

一個程序,不知道這個程序在高併發的情況下能否平穩過渡,這裏所說的平穩過渡是指,在高併發的情況下還能正常訪問,而且處理相關數據庫服務請求並返回數據。APACHE自帶的測試工具AB(apache benchmark),能幫忙測試程序能否勝任高併發(要看數據庫服務器和應用服務器的性能)。


AB在APACHE的bin目錄下,以命令行的方式執行:

格式: ./ab [options] [http://]hostname[:port]/path

參數說明:

-n requests //在測試會話中所執行的請求個數。默認時,僅執行一個請求。

-c concurrency //一次產生的請求個數。默認是一次一個。

t  timelimit //測試所進行的最大秒數。


其他的參數看中就用。

參數很多,一般我們用 -c 和 -n 參數就可以了。例如:
./ab -c 1000 -n 1000 http://127.0.0.1/index.jsp

這個表示同時處理1000個請求並運行1000次index.jsp文件。

其返回的結果集是有很多內容,我們選擇關鍵的幾個看看就大概知道我們的模塊性能了。


我比較關心的幾個結果:

Concurrency Level: 1000
Time taken for tests: 1.190 seconds  //處理1000個併發請求總共花了1.19秒
Complete requests: 1000  //完成處理的請求量
Failed requests: 0  //請求失敗數
Write errors: 0
Non-2xx responses: 1000
Total transferred: 164000 bytes  //總共傳輸了多少流量
HTML transferred: 0 bytes
Requests per second: 840.58 [#/sec] (mean) //平均一個請求花840.58毫秒 大家最關心的指標之一,相當於 LR 中的每秒事務數,後面括號中的 mean 表示這是一個平均值
Time per request: 1189.651 [ms] (mean) //大家最關心的指標之二,相當於 LR 中的平均事務響應時間,後面括號中的 mean 表示這是一個平均值
Time per request: 1.190 [ms] (mean, across all concurrent requests) //每個請求實際運行時間的平均值 ms是毫秒
Transfer rate: 134.62 [Kbytes/sec] received //傳輸速率 可以幫助排除是否存在網絡流量過大導致響應時間延長的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章