php 执行超时问题探讨分析,php 执行超时问题探讨分析

本文探讨了PHP执行超时问题,指出在PHP-FPM环境中,max_execution_time参数并不控制脚本实际执行时间,而是限制CPU占用时间。request_terminate_timeout参数才决定脚本的最大执行时间。通过实例测试验证了这两个配置项在不同场景下的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一段,查看php-fpm.conf 定义的slow log,发现有很多的执行超时,记录格式如下:

[26-Apr-2016 18:02:16] WARNING: [pool www] child 7883, script ‘/***/index.php’ (request: “GET /index.php”) executing too slow (56.565008 sec), logging

从日志记录的结果看,此请求执行了56秒多。但是查看php.in 定义却发现max_execution_time = 5,顿感好奇,最大执行5秒为何为执行了近一分钟呢?这个max_execution_time 难道定义的不是请求执行时间吗?遂去google了一下。

此2篇文章都不约而同的说到了:

在 php-cgi(php-fpm) 中,max_execution_time 参数不会起效。真正能够控制 PHP 脚本最大执行时间的是 php-fpm.conf 配置文件中的参数:request_terminate_timeout。

可是经过我的数次测试,发现在 上面的那段话确是”部分正确”的。

测试环境:

centos  7.0

nginx 1.63

php 7.05

php.ini 依然定义max_execution_time = 5

经过对比测试:max_execution_time,request_terminate_timeout 参数控制着不同的超时场景.

1.request_terminate_timeout确实可以控制php的执行时间:

如果执行的php时间大于request_terminate_timeout时间,php-fpm 会结束执行,然后浏览器会收到响应  http:404;<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值