【效能測試工具】- ApacheBench

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   io   strong   檔案   

優點:提供的測試結果資訊更完備;缺點:每次只能測試一個連結

 

概述:

ab全稱是ApacheBench,是 Apache 附帶的一個HTTP效能測試小工具,可以同時類比多個並發請求。

 

安裝:

Apache伺服器套件內建ab,只要安裝Apache即可,無需另行安裝ab。ab位於%ApacheHome%/bin目錄下(“%ApacheHome%”為Aapche安裝路徑),你也可以把ab.exe檔案copy出來,獨立使用。

 

基本使用:

訪問www.baidu.com首頁,同時處理5個並發請求,並且運行10次訪問baidu首頁。            /*效能測試需求*/

XXXXXXXX:~$ ab -n 10 -c 5 http://www.baidu.com/

/*啟動apache ab,向www.baidu.com 總共發送10個請求(-n 10),1次發送5個(-c 5),也就是說發給www.baidu.com的請求分兩批發完的。*/

 

操作結果:

This is ApacheBench, Version 2.3 <$Revision: 655654 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking www.baidu.com (be patient).....done

 

Server Software:        BWS/1.0

Server Hostname:        www.baidu.com

Server Port:            80

Document Path:          /

Document Length:        9777 bytes

Concurrency Level:      5                                                        /*並發數*/

Time taken for tests:   0.017 seconds                     /*整個測試持續的時間*/

Complete requests:      10                                       /*完成的請求數量*/

Failed requests:        2                                            /*失敗的請求數量*/

   (Connect: 0, Receive: 0, Length: 2, Exceptions: 0)

Write errors:           0

Total transferred:      101688 bytes                     /*整個情境中的網路傳輸量*/

HTML transferred:       97786 bytes                  /*整個情境中的html內容傳輸量*/

 

/*大家最關心的指標之一,指的是吞吐率

相當於 LR 中的 每秒事務數 ,後面括弧中的 mean 表示這是一個平均值*/

Requests per second:    584.39 [#/sec] (mean)    /*每秒事務數,mean表示這是一個平均值*/

 

/*大家最關心的指標之二,指的是使用者平均請求等待時間

相當於 LR 中的 平均事務回應時間 ,後面括弧中的 mean 表示這是一個平均值*/ 

Time per request:       8.556 [ms] (mean)                   /*每1次包含5個並發的請求時間*/

 

//大家最關心的指標之三,指的是伺服器平均請求處理時間

Time per request:       1.711 [ms] (mean, across all concurrent requests)               /*5個並發數,其中每一個請求的時間*/

 

Transfer rate:          5803.22 [Kbytes/sec] received                          /*平均每秒網路上的流量,可以協助排除是否存在網路流量過大而導致的回應時間延長的問題*/

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.1      0       0                      //網路連接狀態

Processing:      5    7   1.6      7      10                      //網路處理狀態

Waiting:        4    6   1.6      6       9                       //網路等待狀態

Total:          5    7   1.6      7      10          /*這4行顯示的是網路上消耗的時間的分解*/

Percentage of the requests served within a certain time (ms)

  50%      7

  66%      7

  75%      7

  80%     10

  90%     10

  95%     10

  98%     10

  99%     10

 100%     10 (longest request)                  /*這些內容顯示的是整個情境中所有請求的響應情況,

在情境中每個請求都有一個回應時間,其中75%的使用者回應時間小於7毫秒,最大回應時間小於10毫秒*/

 

參數說明:

http://httpd.apache.org/docs/2.0/programs/ab.html

-A auth-username:password
向伺服器提供基本認證資訊。使用者名稱和密碼之間由一個":"隔開,並將被以base64編碼形式發送。無論伺服器是否需要(即是否發送了401認證需求代碼),此字串都會被發送。

-c concurrency
一次產生的請求個數。預設是一次一個。

-C cookie-name=value
對請求附加一個"Cookie:"頭行。其典型形式是 name=value 的一個參數對。此參數可以重複。

-d
不顯示"percentage served within XX [ms]table"訊息(為以前的版本提供支援)。

-e csv-file
產生一個逗號分隔(CSV)檔案,其中包含了處理每個相應百分比請求(從1%到100%)所需要的相應百分比時間(以微秒為單位)。由於這種格式已經"二進位化",所以比"gnuplot"格式更有用。

-g gnuplot-file
把所有測試結果寫入一個"gnuplot"或者TSV(以Tab分隔)檔案。此檔案可以方便地匯入到 Gnuplot, IDL, Mathematica, Excel中。其中的第一行為標題。

-h
顯示使用方法的協助資訊。

-H custom-header
對請求附加額外的頭資訊。此參數的典型形式是一個有效頭資訊行,其中包含了以冒號分隔的欄位和值(如:"Accept-Encoding: zip/zop;8bit")。

-i
執行HEAD請求,而不是GET 。

-k
啟用KeepAlive功能,即在一個HTTP會話中執行多個請求。預設不啟用KeepAlive功能。

-n requests
在測試會話中所執行的請求個數。預設僅執行一個請求,此時其結果不具有意義。

-p POST-file
包含了POST資料的檔案。

-P proxy-auth-username:password
對一個中轉代理提供基本認證資訊。使用者名稱和密碼由一個":"隔開,並將被以base64編碼形式發送。無論伺服器是否需要(即是否發送了407代理認證需求代碼),此字串都會被發送。

-q
如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此 -q 標記可以屏蔽這些資訊。

-s
用於編譯中(ab -h 會告訴你)使用了SSL的受保護的https ,而不是http協議的時候。此功能是實驗性的,最好不要用。

-S
不顯示中值和標準差值,而且在均值和中值為標準差值的1到2倍時,也不顯示警告或出錯資訊。預設時,會顯示最小值/均值/最大值等數值。(為以前的版本提供支援)

-t timelimit
測試所進行的最大秒數。內部隱含值是"-n 50000"。它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。

-T content-type
POST資料時所使用的"Content-type"頭資訊。

-v verbosity
設定顯示資訊的詳細程度,4或更大值會顯示頭資訊,3或更大值可以顯示響應代碼(404,200等),2或更大值可以顯示警告和其他資訊。

-V
顯示版本號碼並退出。

-w 

以HTML表格形式輸出結果。預設時,它是白色背景的兩列寬度的一張表。 

-x <table>-attributes 

設定<table>屬性的字串。此屬性被填入<table 這裡 > 。

-X proxy[:port]
對請求使用Proxy 伺服器。

-y <tr>-attributes
設定<tr>屬性的字串。

-z <td>-attributes
設定<td>屬性的字串。

 

討論/疑問:

  • Ab的啟動時間會有延時,比如設定的執行時間是5秒(-t 5),執行ab -n 1000 -c 2 -t 5 http://www.baidu.com/,那麼在執行結果內查看測試的期間則是“Time taken for tests:   7.657 seconds”。則啟動時間消耗了2秒。
  • 對www.douban.com/測試,首次沒有失敗的請求,後幾次會有失敗的請求,這個可能是網站的保護機制吧?

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.