一个APP需要有多个PHP-FPM池吗?我有一个带有Digital Ocean,Drupal,NGINX,2个内核,2 Gigas RAM的应用程序。使用 Perusio 的 NGINX 和 DRUPAL 配置,我当前的配置有 3 个池,我不知道拥有多个池是否对性能有好处,或者我是否可以从一个池运行我的 Drupal 应用程序。
为什么我不想只从一个池中运行 PHP-FPM?因为每个池的 PHP-FPM 配置中都有一些参数,必须根据 CPU 内核、RAM 等进行设置......但是,如果有 2 或 3 个游泳池怎么办?我应该将所有内容除以 3 吗?然后这些设置变得混乱。
此外,每个池的日志(访问、错误)都是分离的,我更喜欢在一个位置。我读过,使用不同的池,我们可以控制不同的应用程序,听起来合乎逻辑,但事实并非如此。
我已经在生产中了,这就是我要问的,如果不先自己测试就没有问题。谢谢大家!
池旨在提供对 PHP-FPM 的精细配置和控制;每个正在运行的池可以有不同的行为。出于这个原因,许多人选择每个应用程序有一个 PHP-FPM 池。
如果我理解了你的问题,你正在运行三个池,只有一个Drupal安装。如果是这种情况并且所有三个配置都相同,则可以通过合并到单个池中来简化此操作。
我的建议:
-
由于您已经在生产中,因此请观察所有
pm
设置(尤其是pm = dynamic
),并确保增加设置,例如按比例pm.max_children
要删除的池数量(例如,如果pm.max_children = 10
我建议将其提高到 30 以适应)。 -
如果您的 PHP-FPM 实例正在使用缓存,请确保刷新这些缓存。
-
保留配置文件的完整热备份(例如,整个/etc/php-fpm.d),如果你想最大限度地减少停机时间,请自由使用 PHP-FPM 的重新加载功能,而不是重新启动。
-
确保将 Nginx 的
fastcgi_pass
调整为指向正确的套接字/端口。 -
最后,密切关注生成的进程数和消耗的内存数。
pm
中的错误配置很容易使 PHP-FPM 消耗过多的资源。祝你好运!