Posted at

[Apache][Test] Apache Benchを使った負荷テスト

More than 1 year has passed since last update.

Webサーバーの負荷テストならまず ab((Apache Bench)の略)だという。


1. インストール


Macの場合

MACの方は標準でインストールされている。

OS X Lionではバグがあり動作しないようで、

こちらの記事を確認。


Windowsの場合

Step1. xamppをインストール。

Step2. xampp のインストールフォルダに入る: cd C:\xampp\apache\bin\

Step3. abコマンドを実行。


2. abコマンドの構文

$ ab [-OPTION] URL

OPTIONman ab コマンドで確認できる。


3. 負荷テストのやりかた


一番簡単な実行方法

ab -n [総リクエスト数] -c [同時リクエスト数] [URL]

同時10接続で、100リクエスト発行するならこうなる。

ab -n 100 -c 10 http://example/test.php


実行結果の見方

実行結果のレポート情報の中で、まずは下記の2つを確認しておくと良い。


  • Failed Requests:失敗したリクエスト数。これが発生している場合は、サーバが処理できる能力を超えている。

  • Requests per second:1秒あたりに処理したリクエスト数。

サーバーの限界を測定するには、

「Failed Requests」が0、「Request per second」がより大きい数値になるようにチューニングする。

:weary: 自動的にチューニングしてくれるOPTIONがあればなあ。


  • CSVファイルとして出力

eオプション(exportの略称だよね)をつけると、

CSVファイルとして出力可能。

ab -n 100 -c -e result.csv 10 http://example/test.php


4. できるとできないこと


  • 1回の実行で単一のURLに対してリクエスト

  • シナリオベース(複数の一連の)のテストはできない

複数のURLに対して負荷を生成したい場合は、下記のようなツールがある。


  • Apache JMeter

  • httperf

  • weighttp


参考

https://blog.verygoodtown.com/2012/05/apache-bench-ab/

https://qiita.com/mmmm/items/f31b15b4f80427360207

https://dev.classmethod.jp/tool/ab-tutorial/