Develop with pleasure!

福岡でCloudとかBlockchainとか。

Passengerのアーキテクチャ

Passengerのアーキテクチャを日本語訳してるサイト発見。

Passenger アーキテクチャ概要 (koshigoe 仮訳)

個人的にSpawnServerについてよく把握してなかったこともあったな。

  • ApplicationSpawnServer
    Railsのアプリケーションコードをキャッシュすることで、アプリケーションインスタンスの生成を高速化する。
  • アプリケーションプール
    アクティブなアプリケーションインスタンスのプール機構。これ自体は他のサーバでもよくある仕組み。
  • FrameworkSpawnServer
    Railsのバージョン毎にFrameworkSpawnServerが生成されるみたい。これで、1つのApacheでもバージョンの異なるRailsアプリケーションを管理できると。


あと使用するメモリ容量の削減の方法も3割減がアピールされてるけど、実現方法としてはCopy-On-Writeで親子間のメモリ利用の最適化を図ってたのね。(こちらは、標準のRubyの実装を使った場合は有効にならず、RubyEnterpriseEditionの実装を使う必要がある。)
※Copy on WriteについてはLinux のプロセスが Copy on Write で共有しているメモリのサイズを調べる - naoyaのはてなダイアリーのサイトが分りやすく説明されてる。