0

一个APP是否需要多个PHP-FPM池?我有一个带有 Digital Ocean、Drupal、NGINX、2 核、2 千兆 RAM 的应用程序。使用 Perusio 的 NGINX 和 DRUPAL 配置,我当前的配置有 3 个池,我不知道拥有多个池是否有利于性能,或者我是否只能从一个池运行我的 Drupal 应用程序。

为什么我不想只从一个池中运行 PHP-FPM?因为每个池的 PHP-FPM 配置中有一些参数必须根据 CPU 内核、RAM 等进行设置……但是如果有 2 个或 3 个池怎么办?我应该将所有内容除以 3 吗?然后这些设置变得混乱。

此外,每个池(访问、错误)的日志都是分离的,我更喜欢全部在一个位置。我已经读过,使用不同的池,我们可以控制不同的应用程序,并且听起来很符合逻辑,但这不是我的情况。

我已经在生产中,这就是我要问的问题,如果没有自己先测试就没有问题。谢谢大家!

4

1 回答 1

2

池旨在提供对 PHP-FPM 的精细配置和控制;每个运行池可以有不同的行为。出于这个原因,许多人选择为每个应用程序设置一个 PHP-FPM 池。

如果我理解了您的问题,那么您只需要安装一个 Drupal 就可以运行三个池。如果是这种情况并且所有三个配置都是相同的,那么可以通过合并到一个池中来简化。

我的建议:

  1. 由于您已经在生产中,请观察所有pm设置(尤其是 if pm = dynamic)并确保您增加设置,如pm.max_children您要删除的池数量成比例(例如,如果pm.max_children = 10我建议将其提高到 30 以适应)。

  2. 如果您的 PHP-FPM 实例正在使用缓存,请确保刷新这些缓存。

  3. 保留您的配置文件的完整热备份(例如,整个/etc/php-fpm.d)并自由使用 PHP-FPM 的重新加载功能,而不是重新启动,如果您想最大限度地减少停机时间。

  4. 确保将 Nginxfastcgi_pass调整为指向正确的套接字/端口。

  5. 最后,密切关注生成的进程数量和消耗的内存。错误配置pm很容易让 PHP-FPM 消耗太多资源。祝你好运!

于 2013-11-12T10:27:11.343 回答