Ich habe eine Rails-App auf ubuntu 14.04
machine und sie wird von Nginx
und passenger
geliefert. Es gibt Zeiten, in denen die App den folgenden Fehler anzeigt
Und die App bleibt gedrückt, bis Nginx
neu gestartet wird. Dies ist wahrscheinlich auf die abgestandenen Arbeiter zurückzuführen, die nicht mehr dienen und die Erinnerung auffressen (korrigiere mich, wenn ich falsch liege).
Ich habe max pool size
des Passagiers auf 6
gesetzt, da meine App-Instanz 150-200 Mb
des Speichers mit 2GB RAM
benötigt.
Ich habe daran gedacht, ein Skript zu schreiben, das regelmäßig nach den veralteten Arbeitern sucht und, falls es gefunden wird, starte Nginx
oder mache touch tmp/restart.txt
. Ich möchte auch wissen, wie man nach den veralteten Arbeitern sucht oder ob das passenger
nicht wie erwartet funktioniert.
Eine andere Lösung, die ich dachte, ist, regelmäßig Nginx
neu zu starten oder touch tmp/restart.txt
nach einem bestimmten Zeitintervall, sagen wir mal, eine Stunde zu machen.
Ich habe auch die Passagierdokumentation über die drei Möglichkeiten des Neustarts der App gelesen.
passagier-config neustart-app
restart.txt
Neustart von Nginx
In den ersten beiden Fällen wird keine Anfrage gelöscht, während die App neu gestartet wird. Beim Neustart der App kann die Zeit jedoch Null sein, da der Neustart der App je nach App einige Zeit dauern kann.
Ich möchte wissen, was ein guter Weg wäre, oder gibt es einen anderen Weg, dieses Problem loszuwerden.
Zuerst sollten Sie Konfigurationsoptionen für Passagiere überprüfen >. Zweitens sollten Sie wirklich herausfinden, was tatsächlich Ihr Passagierarbeiter hängt. Dafür gibt es einen Passagier-Log-Parameter (den Sie überwachen können), da Sie nicht sicher sind, was in diesen Prozessen passiert. :)
Nun zum ersten Problem - Ihr Wunsch, den Arbeiter neu zu starten - wenn das tatsächlich daran liegt, dass Sie hängen bleiben, während Sie nichts tun: Sie können
kombinieren %Vor%mit
%Vor%Lesen Sie etwas über diese Befehle auf dem angegebenen Link, es geht ausführlicher.
Tags und Links nginx ruby-on-rails ubuntu-14.04 passenger