天天看點

ab壓力測試的用法

在阿帕奇伺服器的套件中,有一個叫 做ab(ApacheBench)的工具。ApacheBench主要是用來測試阿帕奇伺服器執行效率用的

ApacheBench 可以針對某個特定的 URL 仿真出連續的聯機請求,同時還可以仿真出同時間點數個相同的聯機請求,是以利用 ApacheBench 可幫助我們在網站開發期間仿真實際上線可能的情況,利用仿真出來的資料做為調整伺服器設定或程式的依據。 ApacheBench 的用法如下:  

  Usage: /usr/local/apache/bin/ab [options] [http://]hostname[:port]/path    Options are:  

  -n requests Number of requests to perform  

  -c concurrency Number of multiple requests to make    -t timelimit Seconds to max. wait for responses    -p postfile File containg data to POST  

  -T content-type Content-type header for POSTing    -v verbosity How much troubleshooting info to print    -w Print out results in HTML tables  

  -x attributes String to insert as table attributes    -y attributes String to insert as tr attributes    -z attributes String to insert as td or th attributes    -V Print version number and exit    -k Use HTTP KeepAlive feature  

  -h Display usage information (this message)  

  假設我們要對 echo.fcg 做測試,仿真 1000 次的聯機請求,而且同一時間有 20 個并行的 (concurrent) 聯機請求的情況,隻要在指令列模式下執行  

  $ ab -n 1000 -c 20 http://localhost/fcgi-bin/echo.fcg

之後ab工作後會把結果顯示出來

This is ApacheBench, Version 1.3  

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

Copyright c 1998-1999 The Apache Group, http://www.apache.org/  

Benchmarking localhost (be patient)... Server Software: Apache/1.3.6  

Server Hostname: localhost  

Server Port: 80  

Document Path: /fcgi-bin/echo.fcg  

Document Length: 995 bytes  

Concurrency Level: 20  

Time taken for tests: 6.859 seconds  

Complete requests: 1000  

Failed requests: 0  

Total transferred: 1142000 bytes  

HTML transferred: 995000 bytes  

Requests per second: 145.79  

Transfer rate: 166.50 kb/s received  

Connnection Times (ms)  

 min avg max  

Connect: 0 4 61  

Processing: 62 128 771  

Total: 62 132 832  

以上結果指出,在同時間20 個聯機請求 (Concurrency Level) 的情況下,完成 1000 次的聯機請求,共花了 6.859 秒(Time taken for tests),是以這個程式每秒平均可以處理(Requests per second) 145.79 

繼續閱讀