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)
圧力テストを行うには、次のコマンドを実行します.適切なパラメータを変更できます.
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ミリ秒を超えない.
ab-vを用いてabの詳細なパラメータの使用方法を見ることができる.
[root@node234 bin]# ./ab -v
./ab: wrong number of arguments
Options are:
-c concurrency Number of multiple requests to make
-b windowsize Size of TCP send/receive buffer, in bytes
-u putfile File containing data to PUT. Remember also to set -T
'application/x-www-form-urlencoded'
-v verbosity How much troubleshooting info to print
-i Use HEAD instead of GET
-y attributes String to insert as tr attributes
-C attribute Add cookie, eg. 'Apache=1234. (repeatable)
Inserted after all normal header lines. (repeatable)
are a colon separated username and password.
are a colon separated username and password.
-V Print version number and exit
-d Do not show percentiles served table.
-g filename Output collected data to gnuplot format file.
-r Don't exit on socket receive errors.
-Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
圧力テストを行うには、次のコマンドを実行します.適切なパラメータを変更できます.
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
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Completed 100 requests
Completed 300 requests
Completed 500 requests
Completed 700 requests
Completed 900 requests
Finished 1000 requests
Server Software: nginx/0.9.4
Server Port: 80
Document Path: /carindex.php
Time taken for tests: 19.445 seconds
Failed requests: 0
Total transferred: 5990000 bytes
Requests per second: 51.43 [#/sec] (mean)
Time per request: 19.445 [ms] (mean, across all concurrent requests)
min mean[+/-sd] median max
Processing: 47 133 32.9 126 298
Total: 112 193 36.8 183 374
Percentage of the requests served within a certain time (ms)
66% 195
80% 214
95% 270
99% 304
実行結果説明: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ミリ秒を超えない.