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