私は Apache + Passenger を使用していくつかの Rails アプリケーションをホストしています。長時間リクエストがない場合、何かがスリープ モードになるようです。サイトが読み込まれるまでに 10 ~ 20 秒かかります。長い間リクエストがなかったときに起こさなければならない何かがあるように感じます.
どうすれば修正できますか?私は十分なRAMを持っているので、スリープ状態になったものが起きたままになっても問題ありません。;)
私は Apache + Passenger を使用していくつかの Rails アプリケーションをホストしています。長時間リクエストがない場合、何かがスリープ モードになるようです。サイトが読み込まれるまでに 10 ~ 20 秒かかります。長い間リクエストがなかったときに起こさなければならない何かがあるように感じます.
どうすれば修正できますか?私は十分なRAMを持っているので、スリープ状態になったものが起きたままになっても問題ありません。;)
PassengerPoolIdleTime
Passengerのパラメータを見てください。メモリを節約するためにシャットダウンする前に、アプリケーション インスタンスをアイドル状態にできる最大秒数を示します。
デフォルトは 300 ですが、より高い数値を設定してみて、それが役立つかどうかを確認してください。
また、共有ホストを使用していてその設定を変更できない場合は、いつでも x 秒 (x は PassengerPoolIdleTime よりわずかに小さい) ごとにサイトにアクセスする cron スクリプトを作成し、分析パッケージを更新して無視することができます。ポーリングを行っているボックスの IP アドレスからの要求。
パッセンジャーのドキュメントでは、少数の Rails アプリのみを実行している非共有ホストでは PassengerPoolIdleTime を 0 に設定することを推奨しています。これにより、絶対に必要でない限り、アンロードされないようにする必要があります。
@x0ne さん、グローバル サーバー設定で PoolIdleTime (nginx の pool_idle_time) を設定できます。私の Nginx のインストールでは、/opt/nginx/conf/nginx.conf です。
PoolIdleTime をカバーするパッセンジャーのドキュメントの一部を次に示します: http://www.modrails.com/documentation/Users%20guide.html#PassengerPoolIdleTime