ubuntu 14.04
のレールアプリを持っており、サービスはNginx
とpassenger
です。アプリは、次のエラーダウンタイムの原因となった乗客の古い職人の管理方法
[ agents/LoggingAgent/Main.cpp:338 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown)
[ agents/LoggingAgent/Main.cpp:400 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected...
[ ServerKit/Server.h:453 ]: [LoggerAdminServer] Shutdown finished
[ agents/LoggingAgent/Main.cpp:425 ]: PassengerAgent logger shutdown finished
[ ServerKit/Server.h:453 ]: [ServerThr.1] Shutdown finished
[ ServerKit/Server.h:453 ]: [ServerThr.2] Shutdown finished
[ ServerKit/Server.h:453 ]: [AdminServer] Shutdown finished
[ agents/HelperAgent/Main.cpp:724 ]: Disconnecting long-running connections for process 19431, application /public#default
[ agents/HelperAgent/Main.cpp:724 ]: Disconnecting long-running connections for process 19440, application /public#default
[ agents/Watchdog/Main.cpp:1255 ]: Starting PassengerAgent watchdog...
[ agents/HelperAgent/Main.cpp:883 ]: Starting PassengerAgent server...
[ agents/HelperAgent/Main.cpp:232 ]: PassengerAgent server running in multi-application mode.
[ agents/HelperAgent/Main.cpp:637 ]: PassengerAgent server online, PID 19637
[ agents/LoggingAgent/Main.cpp:431 ]: Starting PassengerAgent logger...
[ agents/LoggingAgent/Main.cpp:312 ]: PassengerAgent logger online, PID 19645
[ agents/HelperAgent/Main.cpp:868 ]: PassengerAgent server shutdown finished
を与えてダウンしNginx
が再起動されていない限りアプリがダウンしたまま時があります。これはおそらく、もはや役立たず、記憶を食べていない古い労働者が原因です(私が間違っていれば私を修正してください)。
私のアプリケーションインスタンスが2GB RAM
のメモリの150-200 Mb
を取るので、に私は乗客のmax pool size
を設定しました。
私は古くなった労働者を定期的にチェックするスクリプトを書こうと考えていましたが、見つかった場合はNginx
またはtouch tmp/restart.txt
を実行します。私はまた、失礼した労働者を確認する方法、またはpassenger
が期待どおりに機能していないかどうかを知りたいと思っています。
私は定期的にNginx
を再起動するか、一定時間間隔の後touch tmp/restart.txt
を行うことであると思った別の解決策は、1時間を言います。
乗客-config設定再起動アプリ
restart.txt
再起動nginxの
を再起動し、次の3つの方法について、乗客のドキュメントを読んでいる
最初の2つのケースは停止しませんアプリケーションの再起動中に任意の要求が発生する可能性がありますが、アプリケーションの再起動中は停止時間がゼロになる可能性があります。
私はどちらが良い方法であるか知りたいのですが、この問題を取り除く他の方法があります。