Heim  >  Artikel  >  Backend-Entwicklung  >  Verständnis der PHP-FPM-Parameter

Verständnis der PHP-FPM-Parameter

王林
王林nach vorne
2019-08-21 10:01:331666Durchsuche

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.

Chinesische Erklärung

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

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;

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

Ü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 服务器的文档。

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:PHPStudy. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen