mongrel より早いと噂の thin

さっそくインストール

gem install thin

超簡単(mongrel のパーサを使っているので mongrel が入ってる必要があるとか無いとか)
単発起動 & thin のポート直接指定で起動する場合は mongrel に比べて妙に1発目の立ち上がりが早い気がする。逆に「apache2 + proxy_balancer_module + 多重起動」の場合は異様に立ち上がりが遅い気がするのは気のせいだろうか・・・立ち上がり後もなんかもっさりする・・・設定おかしいのかな。
thin の多重起動に関してはスクリプトを書いてくださっている方がいらしたのでそれを流用

いちいち手で入力するのが面倒なので、複数プロセスで起動するthin_clusterを作ってみました。

webサーバ Thin を使ってみる

ログ出力先がちょっと気になったのでコメントに書いてみたの巻き。この方、「まく動かないところがあるようで」翌日には mongrel に戻してるのが気になるけど・・・まぁ、気にしない・・・。

リクエストをそのまま thin にスルーしてるから静的なファイルはごにょごにょする必要があるのかな。そのあたりはまた勉強しないっと。

既に多重起動が実装されてた(^^;

起動するとき

$ thin -s 5 start
Starting 0.0.0.0:3000 ... 
Starting 0.0.0.0:3001 ... 
Starting 0.0.0.0:3002 ... 
Starting 0.0.0.0:3003 ... 
Starting 0.0.0.0:3004 ... 

止めるときもサーバ数をちゃんと指定しないとエラー出る・・・。これは微妙だな・・・

$ thin stop
/usr/lib/ruby/gems/1.8/gems/thin-0.5.4/lib/thin/daemonizing.rb:73:in `initialize': No such file or directory - tmp/pids/thin.pid (Errno::ENOENT)
from /usr/lib/ruby/gems/1.8/gems/thin-0.5.4/lib/thin/daemonizing.rb:73:in `open'
from /usr/lib/ruby/gems/1.8/gems/thin-0.5.4/lib/thin/daemonizing.rb:73:in `kill'
from /usr/lib/ruby/gems/1.8/gems/thin-0.5.4/bin/thin:93:in `stop'
from /usr/lib/ruby/gems/1.8/gems/thin-0.5.4/bin/thin:116:in `send'
from /usr/lib/ruby/gems/1.8/gems/thin-0.5.4/bin/thin:116
from /usr/bin/thin:16:in `load'
from /usr/bin/thin:16

サーバ数を指定

$ thin -s 5 stop
Stopping 0.0.0.0:3000 ... 
lSending INT signal to process 112 ... stopped!
Stopping 0.0.0.0:3001 ... 
Sending INT signal to process 2928 ... stopped!
Stopping 0.0.0.0:3002 ... 
Sending INT signal to process 2040 ... stopped!
Stopping 0.0.0.0:3003 ... 
Sending INT signal to process 776 ... stopped!
Stopping 0.0.0.0:3004 ... 
Sending INT signal to process 2020 ... stopped!

サーバ数を増やすとアプリケーションの読み込みまでがけっこうかかる。あと、mongrel より速いかと言われると・・・そうかもしれないけどぶっちゃけ良く分からない。気になるほどのアプリケーションを動かしてるわけでもないし。