2016-02-12 18 views
8

ubuntu 14.04のレールアプリを持っており、サービスはNginxpassengerです。アプリは、次のエラーダウンタイムの原因となった乗客の古い職人の管理方法

[ 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つのケースは停止しませんアプリケーションの再起動中に任意の要求が発生する可能性がありますが、アプリケーションの再起動中は停止時間がゼロになる可能性があります。

私はどちらが良い方法であるか知りたいのですが、この問題を取り除く他の方法があります。

答えて

0

まず、passenger configuration optionsを確認する必要があります。第二に、あなたは実際にあなたの乗客を実際にぶつけるものを実際に把握する必要があります。そのためには、旅客ログのパラメータ(監視することができます)があります。なぜなら、それらのプロセスで何が起こっているのかがはっきりしていないように見えるからです。 :)今、手元に最初の問題に関する

- 労働者を強制的にあなたの願いを再起動 - それは実際に何もしない間にぶら下がっ処理に起因するかどう:あなたは

passenger_pool_idle_time/passenger_max_requests 

passenger_min_instances 
passenger_max_instances 

を組み合わせることができます与えられたリンク上でこれらのコマンドについて少し読めば、より詳細に説明されます。

関連する問題