1. ホーム
  2. Blog
  3. [RailsConf2008] mod_rails is dead? 話題のRails実行環境Passenger

[RailsConf2008] mod_rails is dead? 話題のRails実行環境Passenger

大井 宏友

大井 宏友

イベント,海外

rip 大井宏友です。 Ruby on Railsの実行環境はまた混沌とした状態になりつつありますが、 その中でも最近注目なのがApacheプロセスの中で動くPassnger(mod_rails)かと思います。 RailsConfではそのセッションがありました。 開発したのはオランダの企業Phusion社です。


phusion About Phusion

Passenger(mod_rails)で起業した設立二ヶ月、平均年齢22歳の若い企業。 4人のコンピュータサイエンティストがいて、起業前から企業WEBサイトやオープンソースプロジェクトに参画。

About Phusion Passenger (mod_rails)

Apacheの中で動く、簡単で強力なRails実行環境

http://www.modrails.com/

つくったきっかけ

Railsはアプリケーションを作るのは簡単だけど、実行環境に制約がある。なので、 PHP並みに使われるにはどうしたらいいか考えて、もっとも普及しているWEBサーバのApacheのモジュールとして動けば、 多くのプロバイダにも採用してくれそう。

新バージョンでの改善点

旧バージョン1.xでの課題を改善している様子

大きなファイルのアップロード時のパフォーマンス

1.xでは大きなファイルをアップロードするとライlsのプロセスがロックされてしまいそれが遅い原因だった。

2.0では、アップロード専用のbufferを用意することで高速になる。

VMを減らす

1.0.5では1800MBくらい使っていたのが、2.0では300MB程度に。

Rackサポート

Passenger2.0ではRackに対応しているとのこと。つまりPassengerはRails専用ではなくなったので、彼らはこれをもって「mod_rails is dead」と言っているみたい。

ベンチマーク

次のような条件の下で、6種類の実行環境でのメモリ使用量と速度を比較してました。

条件
  • 共通
    • Intel Core 2 Duo, T5300, 1.73 GHz、2 GB Ram
    • Ubuntu Linux 7.10, 32 bit
    • Ruby 1.8.6
    • Ruby on Rails 2.0.2
    • Typo 5.0.3
      • “Production” environment
      • Page caching disabled
      • SQLite 3 as database
    • テストケース
      • 20,000 requests
      • 12 concurrent users
  • 実行環境
    • Apache Prefork + Passenger
    • Apache Worker + Passenger
    • Nginx + Mongrel
    • Nginx + Thin
    • Litespeed
    • Apache Worker + Ruby Enterprise + Passenger 
メモリ使用量

Apache Worker + Ruby Enterprise + Passengerが最少 (Nginx+Mongrelの3/4)。Apache+PassengerとNginx+Mongrelは同等。

速度

passenger_graph

  • Apache + Passenger + Ruby Enterpriseが一番高速
  • Ruby Enterpriseを使わない場合でも、今多くのサイトで使われているNginx + Mongrelより高速
    (Nginx+MongrelはApache+Mongrel Clusterより高速)
そもそもRuby Enterprise Editionって何?

Rubyのメモリ管理のイケてなさをPhusion社が修正したもので、Railsアプリの場合、オリジナルより33% メモリを節約できるとのこと。

Passenger採用サイト

Passenger2.0のリリース時期

soon(本日現在、まだの様子です。)

感想

Mongrelの開発者がRubyに見切りをつけてから、RailsのDeploy環境は何だか混沌としてきたような気がしますが、 このPassengerは、Apacheプロセスで簡単に動くというところ、 また非常に若いコンピュータサイエンティストでありファーストプロダクトなのに非常に注目されていて、 これからメインストリームになりそうな予感が個人的にはしています。ちょっと試してみたいと思います。

トップへ戻る