質問

Apache + Passenger(= Mod Rails)、MySQL、およびActs_As_Ferret(サーバーモード)でUbuntu 8.04共有ホスト(VMWare)を実行しています。最初のリクエストでは遅すぎます。私はそれに対して多くのREST操作を行っていますが、ユーザーは非常に少ないです。

今、新規インストールを行いたい...

どのセットアップ(Ubuntuベース)を非常にきちんとしたRoRサーバーに推奨しますか? (例:Ngnix、Thin、Mongrels、またはその他の派手なもの)

役に立ちましたか?

解決

ec2onrailsメーリングリストを確認してください。さまざまなthin / nginx / passenger / apacheの代替と置換、およびいくつかのまともなテストに基づいて投稿されたいくつかのハードデータについて多くの議論がありました。

ec2onrailsイメージ(google ec2onrails)の形をした素敵なパッケージ化されたRoR / Ubuntuスタックもあります。これはAmazon EC2クラウドで実行するためのものですが、そこにはたくさんの素敵なものがあります+ capistranoタスク。現在、それはApacheに基づいていますが、進行中のバージョンは代替案を検討しています。非EC2サーバーに同じビルドスクリプトを使用できなかった理由はありません。

問題が単に最初のリクエストである場合は、サーバーを稼働させる前にウォームアップしてみてください(たとえば、基本操作を自動的に実行するスクリプトを実行することにより)。

ああ、私は追加する必要があります-問題はあなたのスタックですか?おそらくあなたのコードです。ボトルネックがどこにあるのか、キャッシュ、改善されたクエリとインデックス、特にmemcachedから何を得ることができるのかを見てみる価値があるかもしれません。

他のヒント

Passengerは、アイドリング状態であり、すべてのRailsプロセスをシャットダウンするため、最初の要求では遅いため、最初の要求ではrailsプロセスをロードする必要があります。定期的にpingを実行してRailsプロセスのアイドリングとクローズを回避するか、アイドルタイムアウトを高い値に設定する必要があります。

RailsPoolIdleTimeのドキュメントをご覧ください

まあ、Ubuntu 9.04または8.10に切り替えることで、大幅な速度向上が得られます

私は個人的にubuntuスタックでnginx + passengerを使用しています。フェレットの代わりにスフィンクスも使用します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top