警告:池 www 似乎很忙(您可能需要增加 pm.start_servers 或 pm.min/max_spare_servers)

警告:池 www 似乎很忙(您可能需要增加 pm.start_servers 或 pm.min/max_spare_servers)

我正在尝试在基于 8GB RAM、2v Cores、使用 nginx 和 php7-fpm 的 VPS Debian 上解决这个问题。

检查后/var/log/php7.0-fpm.log我发现有很多这样的警告:

WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 7 total children

这是我的/etc/php/7.0/fpm/pool.d/www.conf

pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_timeout = 10s;
pm.max_requests = 200

有人能帮我解决这个问题吗?

更新:

我已将值增加到:

pm.max_children = 100
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500

在错误日志中我继续收到:

[06-Oct-2016 16:35:08] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 17 total children

答案1

当有请求进入时,PHP-FPM 需要启动一个新的子进程来处理请求,而不是使用现有的子进程,就会出现错误。

发生这种情况是因为您在池配置中设置的数字非常小。

这些数字表示您最多允许同时运行 10 个 PHP 进程。您从 2 个子进程开始,并且只有 1 个最小服务器随时准备处理请求。

如果您的网站有空闲时间,PHP-FPM 会关闭所有空闲进程,以便最多有 3 个进程在线准备处理请求。

我会乘以:

  • pm.max_children
  • pm.start_servers
  • pm.min_spare_servers
  • ps.max_spare_servers

每个数字乘以 5,这是一个合适的起始数字。

然后,您只需监控您的流量并检查这些错误是否再次出现,然后相应地调整数字。

相关内容