是否有任何选项可以为应用程序分配固定数量的 php 进程?

是否有任何选项可以为应用程序分配固定数量的 php 进程?

我有一台装有 Nginx 和 PHP5-FPM 的 Ubuntu 服务器,其设置如下:

/etc/php5/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 6
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
;pm.process_idle_timeout = 10s;
pm.max_requests = 200

/etc/php5/fpm/php-fpm.conf
emergency_restart_threshold = 5
emergency_restart_interval = 1m
process_control_timeout = 10

该服务器上有 4 个站点和一个应用程序正在运行,该应用程序的工作方式是用于发送持续的状态更新并进行确认。

问题是,当应用程序未得到确认时,应用程序会持续进入无限等待状态,并且所有 php 进程都由该应用程序使用,而所有其他站点都关闭。然后我们需要重新启动 php5-fpm 进程来解决这个问题。然后几分钟后,所有进程又由该应用程序使用。

所以请让我们知道是否有任何选项可以解决此问题?此外,是否有任何选项可以只为该应用程序分配 3 个 php 进程,以便只有这些分配的进程进入无限循环,而其他 3 个进程可以管理网站,这样网站就不会瘫痪。

有人可以指导我们吗?

答案1

您可以创建不同的 fpm 池,监听不同的端口(或 unix 套接字),并分配不同的站点甚至不同的位置或应用程序来使用这些池。这样,当一个池被一些滞后脚本所淹没时,其他池不会受到影响。

相关内容