Die Auswirkungen des ordnungsgemäßen Neustarts von Apache und der Benutzererfahrung

10

Ist es sicher, einen gracefulNeustart von Apache auf einem Produktionsserver durchzuführen ? Welche Auswirkungen hat ein ordnungsgemäßer Neustart und welche Auswirkungen hätte dies (falls vorhanden)? Wird es nachteilige Auswirkungen geben (z. B. Ausfallzeiten, auch wenn es nur für kurze Zeit ist)?

Ich habe die folgenden Ressourcen in Betracht gezogen, aber es ist immer noch unklar, welche Auswirkungen dies auf die Benutzer haben wird:

stellarchariot
quelle

Antworten:

9

Bei einem ordnungsgemäßen Neustart sollten vorhandene Verbindungen bis zum normalen Abschluss ausgeführt werden. Zu diesem Zeitpunkt werden ihre Mitarbeiter beendet. Es sollten bereits neue Mitarbeiter gestartet werden, um neue Verbindungen herzustellen.

Sie sollten keine Verbindungsfehler oder langsame Seitenladevorgänge bemerken, aber in der Praxis wird möglicherweise kurz eine neue Verbindungswarteschlange angezeigt, während die Konfiguration vom Master-Thread neu geladen wird (meine dauert weniger als eine halbe Sekunde).

Wenn Sie neu starten, um eine neue Konfiguration aufzunehmen, besteht das Risiko, dass ein Konfigurationsfehler auftritt, der den ordnungsgemäßen Neustart des Servers verhindern kann.

Wenn sich der Server in einem abnormalen Zustand befindet, kann er möglicherweise nicht ordnungsgemäß neu gestartet werden (möglicherweise erwägen Sie deshalb einen ordnungsgemäßen Neustart).

Tricky
quelle
1

Wenn Apache statische Dateien bereitstellt und nicht als Front für so etwas wie einen , ist dies ziemlich reibungslos. Die meisten Benutzer werden es nicht einmal bemerken, und diejenigen, die dies tun, werden es als normale Panne betrachten. Apache wird keine neuen Anfragen bearbeiten, bis die alten bearbeitet wurden. Sie warten also, bis alle fertig sind. Wenn jemand eine 500-MB-Datei mit 68 KB / s herunterlädt, warten Sie möglicherweise eine LANGE ZEIT, in der keine andere Portion stattfindet.

Wenn Apache einem Anwendungsserver gegenübersteht, kann die Situation sehr unterschiedlich sein. Erfahrungsgemäß ist die Benutzeroberfläche für die Interaktion mit diesem Server sehr schlecht, bis der App-Server hochgefahren, geladen und die Caches erwärmt sind.

sysadmin1138
quelle
5
Außerdem ist es SEHR wichtig, einen /etc/init.d/httpd configtestNeustart auf einem Produktionsserver durchzuführen, bevor Sie mit Apache-Neustarts fortfahren.
Sree
In der Tat - es ist sehr wichtig, ein Configtest durchzuführen. IIRC, ich denke, mit späteren Versionen von Apache wird möglicherweise ein impliziter Configtest vor einem ordnungsgemäßen Neustart durchgeführt, und wenn der Configtest fehlschlägt, wird der Neustart nicht fortgesetzt.
stellarchariot
5
"Apache wird neue Anfragen erst bearbeiten, wenn die alten Anfragen bearbeitet wurden. Sie warten also, bis alle fertig sind. Wenn jemand eine 500-MB-Datei mit 68 KB / s herunterlädt, warten Sie möglicherweise eine LANGE ZEIT, in der keine andere Servieren geschieht. " Dies ist nicht korrekt. Die Konfiguration wird sofort neu geladen und neue untergeordnete Prozesse werden erstellt, Verbindungen akzeptiert und Anforderungen verarbeitet, während die vorherige Generation ihre letzten Anforderungen beendet.
Covener
0

Der oben erwähnte elegante Parameter weist httpd an, den Neustartprozess zu starten, indem zunächst alle untergeordneten Prozesse signalisiert werden, ihre aktuellen Aufgaben abzuschließen. Nachdem alle untergeordneten Prozesse (diejenigen, die http-Anforderungen bereitstellen) ihre Aufgaben abgeschlossen haben, werden sie geschlossen. Wenn untergeordnete Prozesse derzeit keine Anforderungen bearbeiten, werden sie sofort geschlossen.

Beenden Sie dagegen die Versuche, alle untergeordneten Prozesse sofort zu beenden, wodurch die Endbenutzer hängen bleiben können. Meine Präferenz ist elegant - eine bessere Wahl für Ihren Business-Class-Server -, weil es freundlicher ist, als untergeordnete Prozesse, die Kunden bedienen, abrupt zu beenden. Viele Administratoren und insbesondere Programmierer verwenden Stop, um ihren Server zu stoppen, oft weil sie nicht wissen, dass es überhaupt Anmut gibt.

Link: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Link

Somdip Dey
quelle