suchen
HeimBackend-EntwicklungPHP-TutorialSprechen Sie kurz über den Reload-Vorgang in PHP

Vorwort

Viele Senioren haben uns gewarnt, dass das Nachladen den reibungslosen Ablauf des gesamten Prozesses gewährleisten kann Eine vorzeitige Kündigung vor dem aktuellen Antrag ist nicht möglich. Viele Jahre lang habe ich diese Aussage nie in Frage gestellt, bis eines Tages beim Neuladen ein 502-Fehler auftrat und ich es noch einmal überdenken musste.

Wie lässt sich das Problem reproduzieren? Schreiben wir ein einfaches Skript zur Simulation:

<?php

sleep(11);
echo "foo";

?>



Verwenden Sie zu diesem Zeitpunkt den Browser, um diese URL zu durchsuchen, und führen Sie dann sofort Folgendes aus Neuladevorgang. Sie können den Fehler 502 sehen.

Ist PHP so schwach? Kann ich nicht einmal garantieren, dass das Nachladen grundsätzlich reibungslos verläuft? Die Antwort ist natürlich nein, tatsächlich kann unser Ziel durch die

process_control_timeout

Parameter erreicht werden. Leider ist dieser Parameter standardmäßig auf 0 eingestellt, was bedeutet, dass er in diesem Artikel nicht auf 10 Sekunden festgelegt wird. Führen Sie die vorherigen experimentellen Schritte erneut aus. Diesmal werden die Ergebnisse normal ausgegeben. Wenn Sie jedoch noch ein paar Experimente durchführen, stellen Sie möglicherweise fest, dass der Schlaf sofort endet, wenn wir neu laden. Dies liegt daran, dass der Schlaf direkt nach dem Empfang des Signals vom Neuladen zurückkehrt:

<?php

sleep(11);
echo "foo";
sleep(11);
echo "bar";

?>



Führen Sie die vorherigen experimentellen Schritte erneut aus und Sie werden feststellen, dass der Fehler 502 erneut auftritt. Dies liegt daran, dass das Neuladen zwar dazu führt, dass der erste Schlaf sofort endet, der zweite Schlaf jedoch weiterhin gültig ist und das Zeitlimit von

process_control_timeout

überschreitet. Wenn wir

process_control_timeout

auf 12s setzen, dann ist alles wieder in Ordnung.

Auf diese Weise müssen wir nur einen angemessenen Wert für

process_control_timeout

festlegen, um einen reibungslosen Nachladevorgang sicherzustellen. Aber was ist ein angemessener Wert? Wenn es zu klein ist, ist es möglicherweise nicht wirksam. Wenn es zu groß ist, kann es zu Nebenwirkungen kommen? Wiederholen wir das letzte Experiment mit Fragen, aber dieses Mal fügen wir einen weiteren Monitor hinzu:

shell> watch -n1 &#39;ps aux | grep php[-]fpm&#39;



Der Zweck dieses Monitors besteht darin, die Änderungen des Neuladevorgangs zu beobachten in der Anzahl der PHP-FPM-Prozesse Um den Effekt deutlicher zu machen, wird empfohlen, den Startmodus von PHP-FPM in den statischen Modus zu ändern und gleichzeitig die Anzahl der Prozesse nicht zu groß zu machen.

Als wir das letzte Experiment wiederholten, stellten wir fest, dass außer dem Prozess, der die Anfrage ausführte, andere Prozesse direkt beendet wurden und der neue Prozess nicht sofort gestartet wurde und bis zum letzten alten Prozess hängen blieb Danach schließt der neue Prozess den Startvorgang ab. Wenn in diesem Zeitraum weitere Anfragen eingehen, wird diese zweifellos nicht sofort beantwortet.

Basierend auf unseren Experimenten können wir den Schluss ziehen, dass PHP-FPM standardmäßig keine reibungslose Ausführung des Neuladevorgangs garantieren kann und gleichzeitig ein angemessener

process_control_timeout

festgelegt werden muss Beachten Sie, dass der Wert nicht zu groß eingestellt werden darf, da das System sonst möglicherweise schwerwiegendere Probleme mit der Anforderungsüberlastung hat.

Zusammenfassung

Das Obige dreht sich alles um den Reload-Vorgang in PHP. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). !

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Erklären Sie, wie sich das Lastausgleich auf das Sitzungsmanagement auswirkt und wie es angegangen werden soll.Erklären Sie, wie sich das Lastausgleich auf das Sitzungsmanagement auswirkt und wie es angegangen werden soll.Apr 29, 2025 am 12:42 AM

Lastausgleich beeinflusst das Sitzungsmanagement, kann jedoch durch Sitzungsreplikation, Sitzungsklebrigkeit und zentraler Sitzungsspeicher gelöst werden. 1. Sitzungsreplikationsdaten zwischen Servern. 2. Session Stickiness lenkt Benutzeranfragen auf denselben Server. 3. Zentraler Sitzungsspeicher verwendet unabhängige Server wie Redis, um Sitzungsdaten zu speichern, um die Datenfreigabe zu gewährleisten.

Erläutern Sie das Konzept der Sitzungsperrung.Erläutern Sie das Konzept der Sitzungsperrung.Apr 29, 2025 am 12:39 AM

SessionLockingIsatechniqueUTToensureUsers'SSessionSessionSeSexclusivetooneuseratatim.itiscrialtforpreventingDatacorruptionandSecurityBreachesinmulti-UserApplications

Gibt es Alternativen zu PHP -Sitzungen?Gibt es Alternativen zu PHP -Sitzungen?Apr 29, 2025 am 12:36 AM

Zu den Alternativen zu PHP-Sitzungen gehören Cookies, Token-basierte Authentifizierung, datenbankbasierte Sitzungen und Redis/Memcached. 1. Kookies verwalten Sitzungen, indem sie Daten über den Kunden speichern, was einfach, aber nur gering ist. 2. Altbasierte Authentifizierung verwendet Token, um Benutzer zu überprüfen, was sehr sicher ist, aber zusätzliche Logik erfordert. 3.Database-basiertssesses speichert Daten in der Datenbank, was eine gute Skalierbarkeit aufweist, die Leistung jedoch beeinflusst. V.

Definieren Sie den Begriff 'Sitzung' im Kontext von PHP.Definieren Sie den Begriff 'Sitzung' im Kontext von PHP.Apr 29, 2025 am 12:33 AM

Sessionhijacking bezieht sich auf einen Angreifer, der sich als Benutzer ausgibt, indem die SessionID des Benutzers angezeigt wird. Zu den Präventionsmethoden gehören: 1) Verschlüsseln der Kommunikation mit HTTPS; 2) Überprüfung der Quelle der SessionID; 3) mit einem sicheren Algorithmus zur Sitzung der Sitzung; 4) regelmäßig aktualisieren die SitzungID.

Was ist die vollständige Form von PHP?Was ist die vollständige Form von PHP?Apr 28, 2025 pm 04:58 PM

In dem Artikel werden PHP erörtert, in dem die vollständige Form, Hauptnutzungen in der Webentwicklung, der Vergleich mit Python und Java und seine Lernen des Lernens für Anfänger beschrieben werden.

Wie handelt es sich bei PHP um Formulardaten?Wie handelt es sich bei PHP um Formulardaten?Apr 28, 2025 pm 04:57 PM

PHP behandelt Formdaten mit $ \ _ post und $ \ _ GET Superglobals, wobei die Sicherheit durch Validierung, Bereinigung und sichere Datenbankinteraktionen gewährleistet ist.

Was ist der Unterschied zwischen PHP und ASP.NET?Was ist der Unterschied zwischen PHP und ASP.NET?Apr 28, 2025 pm 04:56 PM

Der Artikel vergleicht PHP und ASP.NET und konzentriert sich auf ihre Eignung für groß angelegte Webanwendungen, Leistungsunterschiede und Sicherheitsfunktionen. Beide sind für große Projekte lebensfähig, aber PHP ist Open-Source und plattformunabhängig, während ASP.NET,

Ist PHP eine Fallempfindlichkeit?Ist PHP eine Fallempfindlichkeit?Apr 28, 2025 pm 04:55 PM

Die Fallempfindlichkeit von PHP variiert: Funktionen sind unempfindlich, während Variablen und Klassen empfindlich sind. Zu den Best Practices gehören eine konsistente Benennung und Verwendung von Fall-unempfindlichen Funktionen für Vergleiche.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version