thinを試そうと思ったらOSX 10.7のabコマンドがぶっ壊れていた

背景

いろいろ開発環境がヘボいので少しでも良くなるかなと素振りとして自分の OSX 10.7 環境で thin を試してみようと思った。(これは先週の meetup #2の成果の一つでもある。)

ちなみに Rails 3 では(もしかしたらそれ以前から)は Gemfile に

gem 'thin'

しておくだけで rails server で WEBrick ではなく thin が立ち上がる。楽すぎる。

ベンチとろうとしたら

OSX 10.7 の環境で

clientlocalhostのab
serverlocalhostの(thin|WEBrick) + Rails

という方法でベンチマークを取ってみたところ、

なんと、WEBrickの方が速い。

なんじゃこれと思ってアレコレ悩んだんだけど、ログをよく見ると

thin が ab で指定した数より大量にrequestを捌いていた

ことが判明。はい?

何が起きていたか

つまりこうです。

thin速い
ab壊れてる

悩んだ時間返せ。

これの解消のためには

  1. ab を入れ直す(つまり apache を入れる)
  2. ab じゃないベンチマークツールを入れる

の二択になりますね。

httperf入れてみた

せっかくなので以前から名前だけ知ってた

Welcome to the httperf homepage

を入れてみることにした。インストールは brew install しただけ。で、実際ちょっと試してみたんだけど、

  • option が多すぎるし長すぎるし
  • URL をスパッとコピペで渡せないし

手作業で常用するにはやや面倒な感じ。ab の方が慣れもあるけど簡単に使える。とは言え、選択肢があると今回のようなことがあっても安心なので使えて損はない。

rubyops/httperfrb

こんなんもあって、Ruby から使うという方法もあるけど、option が Hash になっただけのような…。それでもまぁ抽象化されて設定ファイルとして ruby コードに落とせるだけでもマシ、かな?

More