我正在迁移使用PHP-FPM运行PHP应用程序的web服务器的configuration。 服务器上有大约40-50(并且增长)的虚拟主机。 该服务器是一个1GB RAM的单CPU虚拟机。 虽然这不是一个可以玩的资源,但我确实有很多这样的负载均衡器,他们宁愿横向扩展而不是垂直扩展。
以前的configuration使所有虚拟主机运行在同一个用户下运行的单个PHP-FPM池中。 最大的孩子是20左右,服务器似乎应付(它总的来说,每天大约10万点击 – 不是巨大的stream量)。
考虑到这些网站的隔离,我正在考虑转移到一个模型,其中每个虚拟主机都有自己的PHP-FPM池,在该网站的特定用户下运行,然后将该池根据虚拟主机的根目录进行chroot。 然而,即使在保守的游泳池儿童设置(初始= 2),闲置时也会产生近100个FPMstream程。
我的问题是:这是否会导致问题? 是否有任何固有的内存问题,旋转这么多的进程?
最后的奖金问题:任何ulimit暗示为php-fpm如果我去做这个方法?
我一直在看同样的事情。
原来这个解决scheme是FPM的ondemand进程pipe理器。 刚刚设置:
pm = ondemand
如果没有命中,它允许0个子FPM进程。 当池被命中时,它们为每个池创build,并在超时后closures。