Php-Fpm 7 服务器已达到 pm.max_children

Php-Fpm 7 服务器已达到 pm.max_children

当我在 Wordpress 中运行密集型作业时收到此错误消息:

[pool www] server reached pm.max_children setting (5), consider raising it

在 2GB RAM 服务器上使用 Php-fpm 7 + Nginx。

当我跑步时:

ps aux | grep fpm

root      1508  0.0  1.5 367260 31380 ?        Ss   Nov05   0:11 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data 10231  0.0  2.7 453420 55540 ?        S    15:10   0:03 php-fpm: pool www
www-data 13266  0.0  2.4 449892 50900 ?        S    22:13   0:00 php-fpm: pool www
www-data 13572  0.0  1.8 372468 37740 ?        S    23:14   0:00 php-fpm: pool www
user+ 13721  0.0  0.0  14512   980 pts/0    R+   23:30   0:00 grep --color=auto fpm

尝试按照本教程确定我需要的正确设置。http://bit.ly/2edUbir

我无法运行此命令,因为它显然不受 Php-fpm 7 支持。

ps -ylC php-fpm --sort:rss

答案1

要调整设置,您需要找到 php-fpm.conf 或 www.conf,具体取决于您安装的 PHP-FPM 版本。就我而言,我必须编辑/etc/php/7.0/fpm/pool.d/www.conf。您需要查找以下设置并根据您的服务器规格进行调整:

[php-fpm-pool-settings]
pm = dynamic
pm.max_children = 25
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

要了解 pm.max_children 的用途,您可以使用以下计算:pm.max_children = 专用于 Web 服务器的总 RAM / 最大子进程大小。请记住为系统上运行的额外服务留出一些 RAM。

根据您的服务名称,您可以尝试以下操作之一:

sudo systemctl restart php-fpm

sudo systemctl restart php7.0-fpm

以下命令将帮助我们确定每个(PHP-FPM)子进程使用的内存:

ps -ylC php-fpm --sort:rss

您可以使用以下便捷命令检查单个 PHP-FPM 进程的平均内存使用情况:

ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'

更多详细信息请阅读以下链接 阅读更多 1 阅读更多 2

答案2

Php-Fpm 7 支持此命令。使用此ps -ylC php-fpm7.0 --sort:rss

答案3

对于 php 7.3 使用此命令:

ps -ylC php-fpm7.3 --sort:rss

答案4

我的情况有点不同,但我认为值得在这里提一下。就我的情况而言,错误背后的原因server reached pm.max_children setting是无效的重定向配置。这使我的 WordPress 进程陷入无限重定向循环,占用了机器的所有 PHP 进程。从客户端的角度来看,浏览器抛出了504 Gateway timed out错误。

在我的 Nginx 配置中,我有一个从裸域到 www 的重定向:

server_name akselipalen.com;
return 301 http://www.akselipalen.com;

我必须$request_uri像这样添加到 URL 中:

server_name akselipalen.com;
return 301 http://www.akselipalen.com$request_uri;

实际原因尚不清楚,但似乎 WordPress 经常想要重定向到另一个 URL。就我而言,我还刚刚将 WordPress 实例从仪表板设置移到,并通过 mysql 控制台确保了正确的新值blog.akselipalen.com和值。直到我更新了 Nginx 重定向配置,正确的设置才解决了问题。www.akselipalen.comsiteurlhome

相关内容