PHP5-FPM pm.max_children影响RAM或CPU + RAM?

最近inheritance了Nginx + PHP5-FPM服务器,我正在学习并试图优化PHP5-FPM设置。

服务器信息:

4 CPUs (8 threads) 7.5 GiB RAM 

PHP5-FPM信息:

 pm.max_children = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 3 ;pm.process_idle_time = 10s; ;pm.max_requests = 500 

(我将取消max_requests行的注释,因为这似乎是一个推荐的事情。)

当网站负载较重时,每个PHP5-FPM进程都有非常高的CPU使用率,但是我还没有看到进程超过1%的RAM使用率。

我看到的任何地方(例如这里和这里 )都只是谈论由RAM限制的pm.max_children增加,并没有提到CPU使用率。

在我的情况下,会增加pm.max_children增加或减less我的网站的性能,基于这个事实,它是比内存绑定更多的CPU的限制? 换句话说,当pm.max_children增加时,RAM是唯一的考虑因素还是CPU也受到了影响?

[编辑]不是重复的:这个问题基本上归结为最后一句话,这不是要求能力计划的意见; 它会询问在pm.max_children设置中CPU使用率是否是一个考虑因素,或者它是否只是增加的RAM。

这取决于你的PHP脚本在做什么。 但是对PHP进程来说, 5是非常低的数字。 通常PHP进程会打开连接到MySQL(需要时间),等待MySQL处理查询(花费时间),所以它不会一直使用CPU,只有5个进程CPU可以空闲一段时间,但是没有其他的PHP程序可以使用它。 所以你可以安全地将限制提高到至less20-30(或更多,取决于你获得的manuy请求)。

关于CPU使用率的问题。 同时拥有更多活动的PHP进程不会增加CPU使用率。 您可用的所有CPU功率将在正在运行的进程之间分配。

从我的angular度来看,你的孩子的限制太低了。 如果你有足够的记忆(而且每个孩子通常只消耗less量的),那么孩子的数量至less应该设置为核心数* 2。 我build议设置最大的孩子32。