背景
いろいろ開発環境がヘボいので少しでも良くなるかなと素振りとして自分の OSX 10.7 環境で thin を試してみようと思った。(これは先週の meetup #2の成果の一つでもある。)
ちなみに Rails 3 では(もしかしたらそれ以前から)は Gemfile に
gem 'thin'
しておくだけで rails server で WEBrick ではなく thin が立ち上がる。楽すぎる。
ベンチとろうとしたら
OSX 10.7 の環境で
client | localhostのab |
server | localhostの(thin|WEBrick) + Rails |
という方法でベンチマークを取ってみたところ、
なんと、WEBrickの方が速い。
なんじゃこれと思ってアレコレ悩んだんだけど、ログをよく見ると
thin が ab で指定した数より大量にrequestを捌いていた
ことが判明。はい?
何が起きていたか
つまりこうです。
thin | 速い |
ab | 壊れてる |
悩んだ時間返せ。
これの解消のためには
- ab を入れ直す(つまり apache を入れる)
- ab じゃないベンチマークツールを入れる
の二択になりますね。
httperf入れてみた
せっかくなので以前から名前だけ知ってた
Welcome to the httperf homepage
を入れてみることにした。インストールは brew install しただけ。で、実際ちょっと試してみたんだけど、
- option が多すぎるし長すぎるし
- URL をスパッとコピペで渡せないし
手作業で常用するにはやや面倒な感じ。ab の方が慣れもあるけど簡単に使える。とは言え、選択肢があると今回のようなことがあっても安心なので使えて損はない。
こんなんもあって、Ruby から使うという方法もあるけど、option が Hash になっただけのような…。それでもまぁ抽象化されて設定ファイルとして ruby コードに落とせるだけでもマシ、かな?