|
Apacheにはデフォルトで、 ab という負荷テストツールがついています。 負荷テストとは、同時にある回数のリクエストを発行し、Apacheがどれだけの時間でレスポンスを返せるかを測定することです。 このツールはab.exeという実行ファイルで、Apacheをインストールしたディレクトリのbinディレクトリ配下にあります。 |
||||||||||||||||||||||||||||||||
| abコマンドのヘルプ | ||||||||||||||||||||||||||||||||
|
ab.exeの実行は色々なオプションがあるので、オプションの詳細を見たい場合はコマンドプロンプトで ab または ab -h と実行してください。abの詳細な使用方法が表示されます。 この時、abというファイルが見つかりません、というようなメッセージが表示されたら絶対パスを指定するか、binディレクトリをパスに追加してください。 |
||||||||||||||||||||||||||||||||
| 総リクエスト回数の指定 | ||||||||||||||||||||||||||||||||
|
まず、負荷テストですのでリクエスト回数を指定します。 リクエスト回数は -n 回数 というように-nオプションを使用して回数を指定します。これを指定しなかった場合、リクエスト回数は1回となるようです。 -nで指定する回数は総リクエスト回数で、同時にリクエストする回数ではありません。 |
||||||||||||||||||||||||||||||||
| 同時リクエスト回数の指定 | ||||||||||||||||||||||||||||||||
|
同時にリクエストする回数を指定するには -c 回数 というように-cオプションを使用して回数を指定します。 -cオプションを使用する時、総リクエスト回数より同時リクエスト回数のほうが多い場合、エラーとなります。 また、総リクエスト回数を指定しない場合に同時リクエスト回数を指定した場合は、勝手に同時リクエスト回数は1となってしまうようです。 同時リクエストの出来る最大回数は 64 だと思います。違ってたらごめんなさい。 |
||||||||||||||||||||||||||||||||
| レスポンス時間制限の指定 | ||||||||||||||||||||||||||||||||
|
負荷テストで、レスポンス時間にタイムリミットを秒数で指定することが出来ます。 -t 回数 というように-tオプションを使用して秒数を指定しますが、例えば以下のようなコマンドを実行したとします。 ab -n 10000 -c 50 -t 6 http://localhost/test/index.html これは、同時に50リクエストを実行していき、合計10000リクエスト実行しようとしています。ただし、-tオプションでレスポンス時間を6秒としています。 これを指定することにより6秒以内にいくつのリクエストが正常に処理されたかを調べることが出来ます。 |
||||||||||||||||||||||||||||||||
| 認証制限しているページの測定方法 | ||||||||||||||||||||||||||||||||
|
負荷テストをしたいページによっては認証制限をかけていることもあると思います。 abでは認証制限をかけているページも -A オプションを使用してテストすることが出来ます。 ヘルプを見ればわかるようにユーザ名とパスワードをコロンで分けて実行します。 具体的には ab -A user:pass http://localhost/basic/index.html というように記述します。上記はuserというユーザ名とpassというパスワード名を指定し、その次にリクエストしたいページを指定しています。 このページはBasic認証しているため、ユーザ名とパスワードが間違えていると負荷測定できません。また、ユーザ名とコロンの間にスペースがあってはいけません。同様にコロンとパスワードの間にスペースがあってもエラーとなりますので注意して下さい。 パスワードをSHAで暗号化する場合は-sオプションを使用 暗号化しない場合(クリアテキスト)-pオプションを使用します。 |
||||||||||||||||||||||||||||||||
| 出力結果の見方 | ||||||||||||||||||||||||||||||||
|
出力結果は英語で表示されます。 以下のコマンドを実行したときの出力結果を表示します。 ab -n 10000 -c 64 http://localhost/test/index.html ![]() 出力結果の意味は以下を参考にして下さい。わかる範囲で書いています。
|
||||||||||||||||||||||||||||||||
| 省略可能 | ||||||||||||||||||||||||||||||||
|
最後にabのヘルプからわかるようにURLの http://と:80は省略可能です。 逆を言えばポートが違う時やプロトコルが異なる場合は指定する必要があります。 |