php - 对于 PHP-FPM, "active processes"是否可以大于 "max_children"

标签 php

将池设置为静态并将 max_children 设置为 5 我希望指标“事件进程”为 5 或以下。发送 10 个并发请求将有“事件进程”报告超过 5 个(例如 10、12、25、...)。

这是有效的行为吗?

池配置:

# grep -v ";" /usr/local/etc/php-fpm.d/www.conf | grep -Ev "^$"
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = static
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.process_idle_timeout = 10s
pm.max_requests = 500
pm.status_path = /status
ping.response = pong
slowlog = log/$pool.log.slow
request_slowlog_timeout = 0
request_terminate_timeout = 0

预期结果: 来自/status 的指标“事件进程”应低于 5。

实际结果: 来自/status 的指标“事件进程”高于 5。

最佳答案

根据 PHP FPM 文档,当 pm 设置为 static 时,唯一确定子进程数量的设置是 pm.max_children .如您所料,这应该确定开始和最大数量。

需要考虑的几件事:

  1. 更改配置后,您是否重新启动了 PHP-FPM 和 NGINX?像这样的东西:

sudo service php-fpm5 restart
sudo service nginx restart

  1. 是否有可能您更改了错误的配置文件(也许是一个位于错误路径中的文件?)。您可以尝试更改其他一些值并确认它是否按预期影响 Web 服务器。
  2. 您是否可能配置了多个池并且 /status 页面为您提供了多个池的报告。

关于php - 对于 PHP-FPM, "active processes"是否可以大于 "max_children",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48961556/

相关文章:

php - 如何在 OSX、PHP 5.5.30 上安装 "pthreads"

php - PHP 中的命名空间阻止使用 Yii 静态函数

php - 如何在cake php 3.2的ctp(模板/ View 文件)中获取 session 存储值?

php - 什么是unix时间戳公式?

php - 传一个空格很多的MySQL查询没问题?

php - 使用 php 正则表达式拆分字符串

php - OO + PHP + 数组 iSSUE

PHP 命名空间和 "use"

javascript - Laravel 简单的 crud 与 jquery ajax

php - 如何将一个变量的值分配给之前的另一个变量?