web-dev-qa-db-ja.com

Mod_Railsスローブート

私はRailsで完全に新しく、この問題に直面しています:

スクリプト/サーバー(webrickと呼ばれる)を使用すると、開発マシンでアプリケーションが正常に実行されます。

問題は、mod_Railsを使用してアプリケーションをオンラインにしたときです。しばらくアイドル状態になってから開始するのに永遠に時間がかかり、一般的には遅く感じます。

私はApacheファイルでこれを行うように言われました:

<VirtualHost *:80>
    ServerName server.com
    DocumentRoot /var/www/server.com/public
    PassengerPoolIdleTime 99999
</VirtualHost>

問題は、これがあまりエレガントだとは思わないことです。しばらくしてアプリを使用しないと、再び起動します。

ありがとう!

1
Ivan

このサーバーに適切な量のリソースがある場合は、パッセンジャープロセスを常に実行したままにすることを検討する必要があります。これを行うには、いくつかのタイムアウトを0に設定します。

PassengerPoolIdleTime 0
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0

また、実行中のRubyインスタンスをさらに設定すると、負荷の問題が発生する可能性があります

PassengerMaxPoolSize 8

以下のリンクで、可能なすべてのApacheパッセンジャー構成パラメーターの詳細を確認できます。特に、PassengerHighPerformanceを見て、それが自分に当てはまるかどうかを確認してください。また、下部で説明されている3つの異なるRailsスポーン方法を見てください。アプリケーションによっては、より高速なスポナーの1つを使用することで適切な速度の増加を得ることができる場合があります。

http://www.modrails.com/documentation/Users%20guide.html

2
emills