cari
对于PHP-FPM参数的理解Aug 21, 2019 am 10:01 AM
fpm

process_control_timeout

英文解释

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.

中文解释

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

中文翻译有个不恰当的地方,英文解释里并没有指明该信号是复用信号。

我的理解:

处理请求

原则上,php-fpm会选择空闲的fastcgi进程去处理请求,在处理之前,php-fpm会给fastcgi发送信号,用来让fastcgi进程准备好接受请求处理。但是fastcgi进程并不总是能够处理请求,也就是不能总是响应该信号(比如出现假死的情况),这时候就需要设定php-fpm留给fastcgi进程响应信号的时间,如果超时了,php-fpm会想其他办法(例如选择其他fastcgi进程),这个就process_control_timeout参数的作用。

php-fpm进行reload

process_control_timeout = 10

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

当浏览器访问http://localhost时,进行php-fpm平滑reload,fastcgi信号收到关闭进程信号后,第一个sleep函数会直接返回,但是第二个sleep仍在执行。因此,php-fpm会被这一个旧fastcgi进程卡10s,超过后才能完成平滑重启

request_terminate_timeout

php-fpm.conf文件中的描述如下:

; 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

翻译过来就是:
request_terminate_timeout参数设置了处理单个请求的超时时间,过了之后,该worker进程就会被kill掉。这个选项应该在php.ini文件的max_execution_time选项由于某种原因没有停止脚本的运行下使用。默认值为0,表示该选项为关闭状态。

正如上面所说,request_terminate_timeout设定的是请求的超时时间,而php.ini配置中的max_execution_time根据手册如下的解释,是脚本被允许的最大执行时间。

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

区别如下:

超时后,request_terminate_timeout会返回502Bad Gateway了,而max_execution_time会抛出Fatal Error

max_execution_time不包括诸如使用system()sleep()的系统调用、流操作、数据库操作等的时间,所以比较鸡肋,而request_terminate_timeout会包含程序的完整请求时间。

另外,开启request_terminate_timeout并不会让max_execution_time失效,先到达谁的超时时间谁起作用。

更过相关PHP问题请访问PHP中文网:https://www.php.cn/

Atas ialah kandungan terperinci 对于PHP-FPM参数的理解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:PHPStudy. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
解决Ubuntu缺少PHP-FPM的问题解决Ubuntu缺少PHP-FPM的问题Mar 08, 2024 pm 09:45 PM

解决Ubuntu缺少PHP-FPM的问题,需要具体代码示例在Ubuntu系统中,安装和配置PHP-FPM是常见的操作,但有时候在安装过程中会出现缺少PHP-FPM的问题。本文将详细介绍如何解决这个问题,并提供具体的代码示例帮助您完成安装和配置。1.检查PHP-FPM是否已安装首先,使用以下命令检查系统中是否已经安装了PHP-FPM:dpkg-l|gr

解决Linux环境下PHP7-FPM启动失败的方法解决Linux环境下PHP7-FPM启动失败的方法Mar 11, 2024 pm 02:12 PM

解决Linux环境下PHP7-FPM启动失败的方法在使用Linux服务器搭建网站或应用程序时,PHP7-FPM是一个常用的PHPFastCGI进程管理器。但是有时会遇到PHP7-FPM启动失败的问题,这可能会导致网站无法正常访问。在本文中,我们将介绍一些常见的解决方法,并提供具体的代码示例。希望这些信息能够帮助你快速解决PHP7-FPM启动失败的情况。检查

如何应对Linux下PHP7-FPM启动失败的情况如何应对Linux下PHP7-FPM启动失败的情况Mar 10, 2024 pm 09:54 PM

Linux下的PHP7-FPM是一种常见的PHPFastCGI进程管理器,通常用来处理PHP程序的运行。然而有时候在配置或者部署过程中,可能会遇到PHP7-FPM启动失败的情况,导致网站无法正常访问。在这种情况下,我们需要采取一些措施来应对和解决问题。1.检查错误日志首先要查看PHP7-FPM的错误日志,通常错误日志位于/var/log/php7-fpm

nginx平滑重启和FPM平滑重启是什么nginx平滑重启和FPM平滑重启是什么May 23, 2023 pm 09:08 PM

平滑重启GR是GracefulRestart(平滑重启)的简称,是一种在协议重启时保证转发业务不中断的机制。GR机制的核心在于:当某设备进行协议重启时,能够通知其周边设备在一定时间内将到该设备的邻居关系和路由保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的路由/MPLS相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内使该设备恢复到重启前的状态。在整个协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以不间断地转发数据。这个过程即称为平滑重启。

nginx+php-fpm服务HTTP状态码502怎么解决nginx+php-fpm服务HTTP状态码502怎么解决May 21, 2023 am 08:07 AM

我们的一个web项目,由于新上城市增多,导致访问量增大,db压力增大,作为提供接口的业务方,最近被下游反馈大量请求“502”。502,badgateway,一般都是upstream(这里就是php)出错,对于php,造成502的原因常见的就是脚本执行超过timeout设置时间,或者timeout设置过大,导致php进程长时间不能被释放,没有空闲worker进程来接客。我们的项目就是php执行时间设置过短导致的,对于这种情况,可以先适当增大php的执行时间,先保证清除502,优化的事情毕竟要花更多

解决Ubuntu系统中缺少PHP-FPM的挑战解决Ubuntu系统中缺少PHP-FPM的挑战Mar 08, 2024 pm 02:48 PM

在解决Ubuntu系统中缺少PHP-FPM的挑战时,需要遵循一系列步骤来安装和配置PHP-FPM。PHP-FPM(FastCGIProcessManager)是一个处理动态页面请求的进程管理器,能够提高PHP应用程序的性能和稳定性。以下将详细介绍如何在Ubuntu系统上安装和配置PHP-FPM,并提供具体的代码示例来帮助解决这一挑战。第一步:更新系统在进

Nginx中使用PHP-FPM时记录PHP错误日志怎么配置Nginx中使用PHP-FPM时记录PHP错误日志怎么配置May 15, 2023 am 08:58 AM

nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志。不会有php的errorlog信息。nginx把对php的请求发给php-fpmfastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errorslog里也看不到php的errorlog。原因是php-fpm的配置文件php

Linux服务器上PHP7-FPM启动异常的处理技巧Linux服务器上PHP7-FPM启动异常的处理技巧Mar 11, 2024 am 11:09 AM

在Linux服务器上使用PHP7-FPM作为服务器端脚本运行环境是常见的做法,但有时候可能会遇到启动异常的情况。本文将介绍一些处理PHP7-FPM启动异常的技巧,同时提供一些具体的代码示例,帮助读者更好地解决问题。1.检查配置文件PHP7-FPM的配置文件通常位于/etc/php/7.x/fpm/pool.d/目录下,确保配置文件中各项配置正确无误。可以使

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual