ab(apache bench)コマンドは、apacheに付属している標準ツール。
ベンチマーク対象のホスト(webサイト)の性能測定ができる。
■コマンド例
例:同時接続数 100 リクエスト総数 1000 対象URL http://www.hoge.jp/
# ab -c 100 -n 1000 http://www.hoge.jp/
これは、http://www.hoge.jp/に対して、同時100接続をリクエスト総数1000になるまで(同時接続100を10回)アクセスするということになる。
テストサイトなどでベーシック認証が必要なサイトに対しては、次のような感じになる。
# ab -c 100 -n 1000 -A user:password http://test.hoge.local/
■GET
URLエンコードしたクエリストリングを付けるだけなので、簡単。
http://test.hoge.local/serach.php?keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
上は、"あいうえお"をUTF-8でURLエンコードした例。
■POST
ちょっと面倒だができる。
非同期通信オブジェクトを使ってPOSTしたことある方ならわかると思う。
まず、POSTする項目のname属性とvalue値(textareaはタグで囲まれた要素の値)で、GETと同じ要領でクエリストリングを記述し、そいつをファイルとして保存する。
# echo -n "keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a" > postdata
で、次のようにabコマンドを実行する。
# ab -c 100 -n 1000 -p postdata -T "application/x-www-form-urlencoded" http://test.hoge.local
-p オプションでPOSTデータを保存したファイルを指定し、-T オプションで content-type を指定する。
■セッション
abでアクセスしたときにセッションはどうなるか調べてみた。
http://test.hoge.local/sess.php
<?
session_start();
で
ab -c 10 -n 100 http://test.hoge.local/sess.php
を実行すると、セッションファイルが100個できていた。
ということは、100回すべて別セッションでアクセスしているとわかった。
ベンチマーク対象のホスト(webサイト)の性能測定ができる。
■コマンド例
例:同時接続数 100 リクエスト総数 1000 対象URL http://www.hoge.jp/
# ab -c 100 -n 1000 http://www.hoge.jp/
これは、http://www.hoge.jp/に対して、同時100接続をリクエスト総数1000になるまで(同時接続100を10回)アクセスするということになる。
テストサイトなどでベーシック認証が必要なサイトに対しては、次のような感じになる。
# ab -c 100 -n 1000 -A user:password http://test.hoge.local/
■GET
URLエンコードしたクエリストリングを付けるだけなので、簡単。
http://test.hoge.local/serach.php?keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
上は、"あいうえお"をUTF-8でURLエンコードした例。
■POST
ちょっと面倒だができる。
非同期通信オブジェクトを使ってPOSTしたことある方ならわかると思う。
まず、POSTする項目のname属性とvalue値(textareaはタグで囲まれた要素の値)で、GETと同じ要領でクエリストリングを記述し、そいつをファイルとして保存する。
# echo -n "keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a" > postdata
で、次のようにabコマンドを実行する。
# ab -c 100 -n 1000 -p postdata -T "application/x-www-form-urlencoded" http://test.hoge.local
-p オプションでPOSTデータを保存したファイルを指定し、-T オプションで content-type を指定する。
■セッション
abでアクセスしたときにセッションはどうなるか調べてみた。
http://test.hoge.local/sess.php
<?
session_start();
で
ab -c 10 -n 100 http://test.hoge.local/sess.php
を実行すると、セッションファイルが100個できていた。
ということは、100回すべて別セッションでアクセスしているとわかった。
コメント
コメントを投稿