Verständnis der PHP-FPM-Parameter

王林
Freigeben: 2023-04-07 07:54:02
nach vorne
1737 Leute haben es durchsucht

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!

Verwandte Etiketten:
fpm
Quelle:PHPStudy
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage