Apache abを使用した圧力テスト(パラメータ説明)

6210 ワード

私たちは一般的にApacheが持っているabを使ってプロジェクトに対して圧力テストを行い、プロジェクトの実行状況を見ます.
ab-vを用いてabの詳細なパラメータの使用方法を見ることができる.
[root@node234 bin]# ./ab -v  
  • ab: option requires an argument -- v  

  • ./ab: wrong number of arguments  
  • Usage: ./ab [options] [http[s]://]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  

  •     -b windowsize   Size of TCP send/receive buffer, in bytes  
  •     -p postfile     File containing data to POST. Remember also to set -T  

  •     -u putfile      File containing data to PUT. Remember also to set -T  
  •     -T content-type Content-type header for POSTing, eg.  

  •                     'application/x-www-form-urlencoded'  
  •                     Default is 'text/plain'  

  •     -v verbosity    How much troubleshooting info to print  
  •     -w              Print out results in HTML tables  

  •     -i              Use HEAD instead of GET  
  •     -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  

  •     -C attribute    Add cookie, eg. 'Apache=1234. (repeatable)  
  •     -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'  

  •                     Inserted after all normal header lines. (repeatable)  
  •     -A attribute    Add Basic WWW Authentication, the attributes  

  •                     are a colon separated username and password.  
  •     -P attribute    Add Basic Proxy Authentication, the attributes  

  •                     are a colon separated username and password.  
  •     -X proxy:port   Proxyserver and port number to use  

  •     -V              Print version number and exit  
  •     -k              Use HTTP KeepAlive feature  

  •     -d              Do not show percentiles served table.  
  •     -S              Do not show confidence estimators and warnings.  

  •     -g filename     Output collected data to gnuplot format file.  
  •     -e filename     Output CSV file with percentages served  

  •     -r              Don't exit on socket receive errors.  
  •     -h              Display usage information (this message)  

  •     -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)  
  •     -f protocol     Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)  

  • 圧力テストを行うには、次のコマンドを実行します.適切なパラメータを変更できます.
     
      ab -n1000 -c10 http: //e60.chenwd.xxx.com/carindex.php
     
    Apache共通パラメータの説明:
    -n:識別要求の合計数.-c:識別要求の合計ユーザ(要求の合計が1000である、要求の合計ユーザが10である場合、平均ユーザ当たり100回の要求が実行される)-t:要求のタイムアウト時間、単位は秒である.
    実行結果:
    [root@node234 bin]# ./ab -n1000 -c10 http://e60.chenwd.xxx/carindex.php  
  • 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 e60.chenwd.dev.eebaobao.com (be patient)  

  • Completed 100 requests  
  • Completed 200 requests  

  • Completed 300 requests  
  • Completed 400 requests  

  • Completed 500 requests  
  • Completed 600 requests  

  • Completed 700 requests  
  • Completed 800 requests  

  • Completed 900 requests  
  • Completed 1000 requests  

  • Finished 1000 requests  
  •    

  • Server Software:        nginx/0.9.4  
  • Server Hostname:        e60.xxx.com  

  • Server Port:            80  
  •    

  • Document Path:          /carindex.php  
  • Document Length:        5722 bytes  

  •    
  • Concurrency Level:      10  

  • Time taken for tests:   19.445 seconds  
  • Complete requests:      1000  

  • Failed requests:        0  
  • Write errors:           0  

  • Total transferred:      5990000 bytes  
  • HTML transferred:       5722000 bytes  

  • Requests per second:    51.43 [#/sec] (mean)  
  • Time per request:       194.446 [ms] (mean)  

  • Time per request:       19.445 [ms] (mean, across all concurrent requests)  
  • Transfer rate:          300.84 [Kbytes/sec] received  

  •    
  • Connection Times (ms)  

  •               min  mean[+/-sd] median   max  
  • Connect:       12   60  19.8     58     205  

  • Processing:    47  133  32.9    126     298  
  • Waiting:       22   75  27.8     68     219  

  • Total:        112  193  36.8    183     374  
  •    

  • Percentage of the requests served within a certain time (ms)  
  •   50%    183  

  •   66%    195  
  •   75%    204  

  •   80%    214  
  •   90%    249  

  •   95%    270  
  •   98%    293  

  •   99%    304  
  •  100%    374 (longest request)  

  • 実行結果説明:Server Software:サーバをテストするWebサーバソフトウェア名前Server Hostname:要求されたドメイン名Server Port:テストされたアクセスポートDocument Path:URLを要求する絶問ファイルパスDocument Length:HTTPに対応する本文の長さを表すConcurrency Level:同時ユーザ数を識別(-c属性で設定)Time taken for tests:すべてのリクエストを実行するのにかかる時間Complete requests:テストの合計リクエスト数Failed requests:失敗したリクエストTotal transferred:すべてのリクエストのレスポンスデータの合計を表し、ヘッダ情報と本文長を含む.HTML transferred:すべてのリクエストのレスポンスデータの本文長(ヘッダ情報の長さを含まない)を示すRequests per second:これが私たちが望むスループットであり、毎秒処理する要求数を表すTime per request:ユーザーごとに平均的に待つ時間を表す.Time taken for tests/(Complete requests/Concurrency Level)Time per request:(mean,across all concurrent requests)サーバが平均的に処理を要求する時間に等しい.詳細なアドレスを飲み込む逆数である.時間:Time per request/Concurrency Level各要求ごとに何秒を費やしたTransfer rate:これらの要求は単位内で、サーバから取得したデータの長さです.等しい:Total transferred/Time taken for testsPercentage of the requests served within a certain time(ms):このデータは各要求処理時間のページング状況を記述するために使用されます.50パーセントは183ミリ秒を超えず、90パーセントは249ミリ秒を超えず、374ミリ秒を超えない.