【问题标题】:php-fpm processes stuck on state "getting request informations"php-fpm 进程停留在“获取请求信息”状态
【发布时间】:2021-09-08 04:26:19
【问题描述】:

我的网络服务器遇到了 php-fpm 活动进程缓慢增加的问题,直到达到 pm.max_children 设置,此时它卡住了,我需要重新启动 php-fpm。 (操作系统:ubuntu 20.0.4,网络服务器:Caddy,php-fpm 版本:7.1,pm = 动态,运行 Laravel 5.5 框架)

我开启了php-fpm状态页面,发现很多进程卡在“Getting request informations”状态。 输出中的示例行:of /status?html&full(这已经卡在这里一个多小时了)

pid state start time start since requests request duration request method request uri content length user script last request cpu last request memory
1772235 Getting request informations 24/Jun/2021:15:03:07 +0000 5111 131 4625314443 POST /api.php?t=removed&e=/role/checkOut/3461 5542139 - /var/www/nameremoved/app/fe/production/api.php 0.00 0

谁能阐明“获取请求信息”状态是什么?我似乎在任何地方都找不到它的记录。

在 php.ini 我有: 最大执行时间 = 180 然而这似乎被忽略了.. 正在运行的脚本来自 Laravel 5.5,绝对不会花费超过几秒钟的时间来执行 - 它们只是基本的数据库操作,可能上传的文件可能高达 500MB

我想我的下一步可能是设置 php-fpm 设置: request_terminate_timeout 看看是否会终止进程。

奇怪的是我在不同的位置设置了相同的服务器(请求根据位置路由到任一服务器),没有这个问题。

任何建议表示赞赏:)

更新 25/6 仍在发生,似乎仅适用于带有文件上传的 POST 请求

更新 29/6 我已经设置 request_terminate_timeout=2h 这成功地杀死了卡在“获取请求信息”状态的请求。所以这有点解决了问题,但我仍然不知道是什么原因造成的

【问题讨论】:

    标签: php php-7.1


    【解决方案1】:

    我对 Ubuntu 20.04.3 LTS、Laravel 8、php-fpm 7.4 和 caddy 2.4.5 有相同的行为。

    重新启动 caddy 或 php-fpm 服务会立即释放进程。所以我首先通过 crontab 每 15 分钟重新启动一次 caddy 快速“修复”它。

    由于 nginx 不会发生这种情况,我现在正在运行 caddy -> nginx -> php-fpm,到目前为止它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2010-10-15
      • 2012-03-09
      相关资源
      最近更新 更多