So verwalten Sie veraltete Mitarbeiter, die Ausfallzeiten verursachen

8

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

%Vor%

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.

    
Ajeet Khan 12.02.2016, 05:33
quelle

1 Antwort

0

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.

    
Saulius Morkevicius 22.06.2017 22:10
quelle