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 'max_execution_time' ini option ; does not stop script execution for some reason. A value of '0' means 'off'. ; 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/
以上是对于PHP-FPM参数的理解的详细内容。更多信息请关注PHP中文网其他相关文章!

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

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

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

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

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

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

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


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。