お手軽なウェブサーバ負荷テストツールの代表と言えば ab ですが、どうも自分の環境(mac osx lion)ではうまく動きません。具体的にはサーバ側にはまだ余裕があるのに接続が切れてしまったりします。ソースからapacheをビルドするといいという話しを何処かで見かけたけどうまくいかず…結局他のツールを使うことにしました。
http_loadは abと同じくらいお手軽なツールです。普通に使う分にはぐぐればインストール方法、実行時のオプション等でてきますが、ssl を利用しているサイトの負荷をテストする方法がなかなか見つからなくて困りました。ので同じように悩んでいる人のために手順を書いておきます。
普通にインストールするだけなら
- ソースをダウンロードして展開
- make
- sudo make install
だけで問題ないのですが、sslを使えるようにするには make の前に Makefile を編集する必要があります。具体的には12〜15行目辺りの
#SSL_TREE = /usr/local/ssl
#SSL_DEFS = -DUSE_SSL
#SSL_INC = -I$(SSL_TREE)/include
#SSL_LIBS = -L$(SSL_TREE)/lib -lssl -lcrypto
のコメントアウトをはずし、openssl の lib や include ファイルがあるディレクトリをそれぞれの変数に指定します。僕は下記のように編集しました。
SSL_TREE = /usr # これ必要ないかも
SSL_DEFS = -DUSE_SSL
SSL_INC = -I/usr/include/openssl
SSL_LIBS = -L/usr/lib -lssl -lcrypto
あとは
make
sudo make install
で OK。
使用例
テキストファイルに負荷テストしたいURLを記載して(下記の例ではurllist中に記載しています)
http_load -parallel 100 -fetches 1000 -cipher fastsec urllist
のようにして実行します。
追記
どうもhttp_loadでsslを利用したときにクライアント側がボトルネックになってうまくパフォーマンスの計測が出来ません。もしかしたらopensslあたりに問題があるのかなあ…