gpt4 book ai didi

nginx - PHP-FPM结束状态如何处理?

转载 作者:可可西里 更新时间:2023-10-31 23:48:25 24 4
gpt4 key购买 nike

我有一个使用 NGINX 和 PHP-FPM 的网站。正如您可能知道的那样,PHP-FPM 有一个状态页面用于它的池,其中包含关于它的进程的详细信息。 我的问题是,随着时间的推移,许多进程状态变为“正在完成”,并且在我重新加载 PHP-FPM 之前不会改变它们的“正在完成”状态。

坏事是“正在完成”的进程算作事件进程,当事件进程的数量超过 pm.max_children 时,我的网站上就会发生坏事。

我知道一些 php-fpm 池参数可以杀死空闲进程,但我找不到在一定时间后杀死完成进程的参数。

如何处理PHP-FPM结束状态?一段时间后是否有配置参数来终止这些“完成”进程?这可能是 NGINX 和 PHP-FPM 之间的配置错误吗? “完成”状态的原因是什么?

这是 php-fpm 状态的图像。红色正在完成状态,这就是我要解决的问题。请求 URI 是我网站的不同页面。

enter image description here

感谢您的知识。

PD1:现在我每 15 分钟重新加载一次 PHP-FPM,这或多或少地“修复”了完成状态……但我认为这可能是一个重要的性能问题,流量更大.

PD2:到目前为止,我认为唯一可行的解​​决方案是读取 php-fpm 状态页面,获取所有具有完成状态的进程,并通过 pid 终止超过任意请求持续时间的进程。

最佳答案

遇到了同样的问题。这是我用作临时解决方案的方法:

创建一个包含以下内容的 PHP 文件:

<?php
fastcgi_finish_request();
?>

编辑 php.ini:

auto_append_file = /path/to/your/file.php

关于nginx - PHP-FPM结束状态如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com