2012-01-15 5 views
1

ローカルサーバー、リモート専用サーバー、およびHerokuで実行されている多くのRails 3.1アプリケーションがあります。アプリケーションの役割に関係なく、初めてアクセスするときにはかなりの時間(10秒かかります)が必要です。Railsアプリケーションを使用しないとロードに時間がかかります

この遅延は、アプリケーションを約10分間使用しなかった場合にも発生します。

これはサーバー(とHeroku)の設定/構成の問題である場合、またはRailsアプリケーションで調整できるものであれば、これを解決しようとしています。何かアドバイスをいただければ幸いです

Rails 3.1.3 

ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2010.02 

:私はRailsとRubyの次のバージョンを実行しています私たちの主な専用サーバに

(この質問がServerFaultの上の方が適している場合、私に知らせて!)

+0

あなたのアプリを実行するためにあなたのサーバーで何を使用していますか?旅客?ユニコーン?薄いです? – Dogbert

+0

乗客は、言及を忘れてしまった! – dannymcc

答えて

3

通常、すべてのアクティブなサーバプロセスが資源を節約するために、Webサーバーによって終了されている症状だこと。

アプリの少なくとも1つのインスタンスが常にロードされるようにサーバーの設定を変更します。たとえば、mod_railsの場合、passenger_min_instancespassenger_pool_idle_timeのような設定は非常に詳細に制御できます(EDIT: nginxバージョン - Apacheバージョンhere)。

ことができない場合は、代わりにあなたは

Alertraなど、スクリプトを実行しているか、Pingdomのような多くのサーバ監視ツールのいずれかを使用して、生きているサーバプロセスを維持するために自分のホームページに、通常のHTTPリクエストを送信することができます
+0

ありがとう!これらのリンクは大きな助けになります。 Apache上の仮想ホストの下に複数のレールアプリケーションを実行しているサーバーがあり、min_instancesの乗数を3に設定した場合、各アプリケーションは1つのインスタンスを使用するか、最初のアプリケーションは3つすべてを予約しますか? – dannymcc

+1

仮想ホストごとに最小インスタンスを設定できると思います。私はガイドのApacheバージョンへのリンクを追加しました - PassengerMinInstancesとPassengerPoolIdleTimeです。また、再起動後にインスタンスを自動的に起動させるために、PassengerPreStartディレクティブを見てください。 – Thilo

関連する問題