Heim Backend-Entwicklung PHP-Tutorial Verständnis der PHP-FPM-Parameter

Verständnis der PHP-FPM-Parameter

Aug 21, 2019 am 10:01 AM
fpm

process_control_timeout

Englische Erklärung

process_control_timeout mixedTime limit for child processes to wait for a reaction on signals from master.
Available units: s(econds), m(inutes), h(ours), or d(ays) Default Unit: seconds. Default value: 0.
Nach dem Login kopieren

Chinesische Erklärung

process_control_timeout
 mixed
设置子进程接受主进程复用信号的超时时间。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
Nach dem Login kopieren

Die chinesische Übersetzung ist unangemessen. Die englische Erklärung weist nicht darauf hin, dass es sich bei dem Signal um ein Multiplex-Signal handelt.

Mein Verständnis:

Verarbeitung von Anfragen

Im Prinzip wählt php-fpm einen inaktiven fastcgi Prozess aus, um die Anfrage zu verarbeiten, bevor sie verarbeitet wird ein Signal an fastcgi, um den fastcgi-Prozess auf die Annahme der Anforderungsverarbeitung vorzubereiten. Der Fastcgi-Prozess ist jedoch nicht immer in der Lage, die Anforderung zu verarbeiten, d Wenn das Signal abläuft, überlegt sich php -fpm andere Möglichkeiten (z. B. die Auswahl anderer fastcgi-Prozesse). Dies ist die Rolle des process_control_timeout-Parameters.

php-fpm perform reload

process_control_timeout = 10

<?php 
sleep(50);echo 1;sleep(20);    
//没有这个sleep,reload会立即生效echo 2;
Nach dem Login kopieren

Wenn der Browser auf http://localhost zugreift, führen Sie php-fpmsmoothreload aus, fastcgi Danach Nach Erhalt des Signals zum Schließen des Prozesses kehrt die erste Schlaffunktion direkt zurück, die zweite Schlaffunktion wird jedoch noch ausgeführt. Daher bleibt php-fpm 10 Sekunden lang bei diesem alten Fastcgi-Prozess hängen, danach kann ein reibungsloser Neustart durchgeführt werden.

request_terminate_timeout

Die Beschreibung in der php-fpm.conf-Datei lautet wie folgt folgt:

; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the &#39;max_execution_time&#39; ini option
; does not stop script execution for some reason. A value of &#39;0&#39; means &#39;off&#39;.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0
Nach dem Login kopieren

Übersetzung ist:
Der Parameter request_terminate_timeout legt den Timeout für die Verarbeitung einer einzelnen Anfrage fest. Danach wird der Worker-Prozess beendet. Diese Option sollte verwendet werden, wenn die Option max_execution_time in der Datei php.ini die Ausführung des Skripts aus irgendeinem Grund nicht stoppt. Der Standardwert ist 0, was bedeutet, dass diese Option deaktiviert ist.

Wie oben erwähnt, legt request_terminate_timeout das Timeout der Anfrage fest, und max_execution_time in der php.ini-Konfiguration ist die maximal zulässige Ausführungszeit für das Skript gemäß der Erklärung unten im Handbuch. Der Unterschied zwischen

max_execution_time
 integer
这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从命令行运行 PHP 时,默认设置为 0。
最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()。
在 安全模式 下你不能通过 ini_set() 来修改此设置。 唯一的解决方法是关闭安全模式或者在 php.ini中修改时间限制。
你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。 Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。 他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。
Nach dem Login kopieren

ist wie folgt:

Nach einer Zeitüberschreitung gibt request_terminate_timeout 502Bad Gateway zurück, während max_execution_time Fatal Error auslöst.

max_execution_time beinhaltet nicht die Zeit für Systemaufrufe wie die Verwendung von system(), sleep(), Stream-Operationen, Datenbankoperationen usw., daher ist es relativ nutzlos, während request_terminate_timeout die vollständige Anforderungszeit von enthält das Programm.

Außerdem wird durch das Einschalten von request_terminate_timeout max_execution_time nicht ungültig. Wer zuerst das Timeout erreicht, wird wirksam.

Weitere verwandte PHP-Probleme finden Sie auf der chinesischen PHP-Website: https://www.php.cn/

Das obige ist der detaillierte Inhalt vonVerständnis der PHP-FPM-Parameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösen Sie das Problem des fehlenden PHP-FPM in Ubuntu Lösen Sie das Problem des fehlenden PHP-FPM in Ubuntu Mar 08, 2024 pm 09:45 PM

Um das Problem des fehlenden PHP-FPM in Ubuntu zu lösen, sind spezifische Codebeispiele erforderlich. Im Ubuntu-System ist die Installation und Konfiguration von PHP-FPM ein häufiger Vorgang, aber manchmal tritt das Problem des fehlenden PHP-FPM während des Installationsprozesses auf. In diesem Artikel wird detailliert beschrieben, wie Sie dieses Problem lösen können, und es werden spezifische Codebeispiele bereitgestellt, die Sie bei der Vervollständigung der Installation und Konfiguration unterstützen. 1. Überprüfen Sie, ob PHP-FPM installiert wurde. Überprüfen Sie zunächst mit dem folgenden Befehl, ob PHP-FPM im System installiert ist: dpkg-l|gr

So lösen Sie das Problem des PHP7-FPM-Startfehlers in einer Linux-Umgebung So lösen Sie das Problem des PHP7-FPM-Startfehlers in einer Linux-Umgebung Mar 11, 2024 pm 02:12 PM

Methoden zur Lösung des Problems des PHP7-FPM-Startfehlers in einer Linux-Umgebung. Wenn Sie einen Linux-Server zum Erstellen einer Website oder Anwendung verwenden, ist PHP7-FPM ein häufig verwendeter PHPFastCGI-Prozessmanager. Manchmal tritt jedoch das Problem auf, dass PHP7-FPM nicht gestartet werden kann, was dazu führen kann, dass auf die Website nicht normal zugegriffen werden kann. In diesem Artikel behandeln wir einige gängige Problemumgehungen und stellen spezifische Codebeispiele bereit. Ich hoffe, dass diese Informationen Ihnen helfen können, das Problem des PHP7-FPM-Startfehlers schnell zu lösen. prüfen

Umgang mit PHP7-FPM-Startfehlern unter Linux Umgang mit PHP7-FPM-Startfehlern unter Linux Mar 10, 2024 pm 09:54 PM

PHP7-FPM unter Linux ist ein gängiger PHPFastCGI-Prozessmanager, der normalerweise für die Ausführung von PHP-Programmen verwendet wird. Während des Konfigurations- oder Bereitstellungsprozesses kann es jedoch manchmal vorkommen, dass PHP7-FPM nicht gestartet werden kann, was dazu führt, dass auf die Website nicht normal zugegriffen werden kann. In diesem Fall müssen wir einige Maßnahmen ergreifen, um das Problem zu bewältigen und zu lösen. 1. Überprüfen Sie zunächst das Fehlerprotokoll von PHP7-FPM. Normalerweise befindet sich das Fehlerprotokoll unter /var/log/php7-fpm.

Was sind Nginx Smooth Restart und FPM Smooth Restart? Was sind Nginx Smooth Restart und FPM Smooth Restart? May 23, 2023 pm 09:08 PM

Graceful Restart GR ist die Abkürzung für Graceful Restart. Es handelt sich um einen Mechanismus, der sicherstellt, dass Weiterleitungsdienste beim Neustart des Protokolls nicht unterbrochen werden. Der Kern des GR-Mechanismus besteht darin, dass ein Gerät beim Neustart des Protokolls seine umliegenden Geräte benachrichtigen kann, um innerhalb eines bestimmten Zeitraums stabile Nachbarbeziehungen und Routen zum Gerät aufrechtzuerhalten. Nachdem das Protokoll neu gestartet wurde, unterstützen Peripheriegeräte es bei der Synchronisierung von Informationen (einschließlich verschiedener Topologie-, Routing- und Sitzungsinformationen, die von Routing-/MPLS-bezogenen Protokollen verwaltet werden, die GR unterstützen) und stellen das Gerät in kürzester Zeit wieder in den Zustand vor dem Neustart. Zustand. Während des gesamten Protokollneustartvorgangs kommt es zu keinem Routenwechsel und es kommt zu keiner Änderung des Paketweiterleitungspfads. Das gesamte System kann Daten ohne Unterbrechung weiterleiten. Dieser Vorgang wird als reibungsloser Neustart bezeichnet.

So lösen Sie den HTTP-Statuscode 502 des Nginx+php-fpm-Dienstes So lösen Sie den HTTP-Statuscode 502 des Nginx+php-fpm-Dienstes May 21, 2023 am 08:07 AM

Bei einem unserer Webprojekte ist durch die Zunahme neuer Städte die Zahl der Besuche gestiegen und der Druck auf die DB als Schnittstellenanbieter ist in letzter Zeit stark gestiegen durch nachgelagertes Feedback. 502, badgateway, ist normalerweise ein Fehler im Upstream (hier PHP). Die häufigste Ursache für 502 ist, dass die Skriptausführung die Zeitüberschreitungszeit überschreitet oder die Zeitüberschreitungseinstellung zu groß ist, was dazu führt, dass der PHP-Prozess nicht ausgeführt wird für eine lange Zeit freigegeben, und es gibt keine untätigen Arbeiter, um Gäste abzuholen. Unser Projekt wird dadurch verursacht, dass die PHP-Ausführungszeit zu kurz eingestellt ist. In diesem Fall können Sie zunächst die PHP-Ausführungszeit entsprechend erhöhen und sicherstellen, dass 502 zuerst gelöscht wird. Schließlich kostet die Optimierung mehr.

Lösung des Problems fehlender PHP-FPM in Ubuntu-Systemen Lösung des Problems fehlender PHP-FPM in Ubuntu-Systemen Mar 08, 2024 pm 02:48 PM

Wenn Sie das Problem des fehlenden PHP-FPM in Ihrem Ubuntu-System lösen möchten, müssen Sie eine Reihe von Schritten zur Installation und Konfiguration von PHP-FPM befolgen. PHP-FPM (FastCGIProcessManager) ist ein Prozessmanager, der dynamische Seitenanfragen verarbeitet und die Leistung und Stabilität von PHP-Anwendungen verbessern kann. Im Folgenden erfahren Sie, wie Sie PHP-FPM auf einem Ubuntu-System installieren und konfigurieren, mit konkreten Codebeispielen, die bei der Lösung dieser Herausforderung helfen. Schritt 1: Die Aktualisierung des Systems ist im Gange

So konfigurieren Sie PHP-Fehlerprotokolle bei Verwendung von PHP-FPM in Nginx So konfigurieren Sie PHP-Fehlerprotokolle bei Verwendung von PHP-FPM in Nginx May 15, 2023 am 08:58 AM

Nginx unterscheidet sich von Apache. In Apache können Sie das Fehlerprotokoll von PHP direkt angeben, sodass die Fehlerinformationen während der PHP-Ausführung direkt in das Fehlerprotokoll von PHP eingegeben werden, das einfach abgefragt werden kann. In Nginx sieht es so aus: Nginx zeichnet nur Zugriffsprotokolle für Seitenbesuche auf. Es werden keine PHP-Fehlerprotokollinformationen angezeigt. Nginx sendet die Anfrage für PHP zur Verarbeitung an den Prozess php-fpmfastcgi. Der Standardwert von php-fpm gibt nur die Fehlermeldung von php-fpm aus, und das Fehlerprotokoll von PHP ist nicht im Fehlerprotokoll von php-fpm zu sehen. Der Grund ist, dass die Konfigurationsdatei php von php-fpm

Tipps zur Behandlung der PHP7-FPM-Startausnahme auf einem Linux-Server Tipps zur Behandlung der PHP7-FPM-Startausnahme auf einem Linux-Server Mar 11, 2024 am 11:09 AM

Es ist eine gängige Praxis, PHP7-FPM als serverseitige Skript-Ausführungsumgebung auf einem Linux-Server zu verwenden, aber manchmal kann es zu Startausnahmen kommen. In diesem Artikel werden einige Techniken zum Umgang mit PHP7-FPM-Startausnahmen vorgestellt und einige spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, das Problem besser zu lösen. 1. Überprüfen Sie die Konfigurationsdatei von PHP7-FPM, die sich normalerweise im Verzeichnis /etc/php/7.x/fpm/pool.d/ befindet, um sicherzustellen, dass die Konfigurationen in der Konfigurationsdatei korrekt sind. Kann machen

See all articles