Phusion Passengerが2.2から3.0で変わったところ
今更感たっぷりですが、違いを把握するために調べました。
まずは、preview-1で書かれている点について。
- http://blog.phusion.nl/2010/06/10/the-road-to-passenger-3-technology-preview-1-performance-2/
- 2.2までは「使い勝手」「安定性」「堅牢制」を中心に据えてきていて、「性能」については「他と比べて十分速い」程度のものだった。
- 3.0では「性能」 に力を入れて、Apacheでは36%、Nginxでは55%ほど、Req/Secが向上した
- (詳細は当該ブログ記事で)
続いて、preview-2で書かれている点について。
- http://blog.phusion.nl/2010/06/18/the-road-to-passenger-3-technology-preview-2-stability-robustness-availability-self-healing/
引き続き、preview-3で書かれている点について。
- http://blog.phusion.nl/2010/07/01/the-road-to-passenger-3-technology-preview-3-closing-the-gap-between-development-and-production-rethinking-the-word-easy/
- これまでは使い勝手を重視して、PHP的な「アップロード&ゴー」モデルでやってきたが、広く使われるようになってリバースプロクシモデルにも対応する
- Phusion Passenger Standalone
そして、preview-4で書かれている点について。
- http://blog.phusion.nl/2010/07/29/the-road-to-passenger-3-technology-preview-4-adding-new-features-and-removing-old-limitations/
- 非同期スポーニング
- PassengerMinInstances
- smart spawningがRack アプリケーションもサポート
- ローカルホストからHTTPでアプリケーションに直接アクセス可能
- グローバルキューがデフォルトになった
- PassengerFriendlyErrorPages
- Nginx
最後に、おまけ記事より。
- http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/
- 複数のバージョンのRubyで運用する話
- Standaloneとリバースプロクシを使うという話が書かれている
- 複数のバージョンのRubyで運用する話
読んでみた限りでは大変すばらしい内容です。試しにab中にrestartした感じでは普通にコネクション切れましたけど、自分の何かが至らなかったのでしょう。
ということで、重い腰を上げて、Unicornのことはひとまず忘れ、Passenger 3 を確認してみたいと思います。
追記:勘違いの訂正(1)
abを中断させてしまったのは、以下の様にして実行したrestartでした。
$ sudo /sbin/service restart
preview-2の記事の例示は以下のrestartです。
$ sudo apachectl restart
apachectlはhttpdのラッパーで、restartはgracefulと同一で、「緩やかな再起動」となっています。ab中にgracefulを実行したところ、待たされはしますが、リクエストを切断することなく再起動することが出来ました。
(OSXの場合はlaunchctlのラッパーでgracefulな再起動はないということも忘れてました。ない、ですよね?)
追記:2.2とgraceful
違いを確認するために、Passengerの2.2.15, 2.2.14, 2.2.0でgracefulを試してみましたが、これもabによるリクエストを切断することなくApacheを再起動させることに成功しました。"Zero-downtime web server restart"のくだりは理解できてません…。