为什么php5-fpm只有在多个wordpress网站处于活动状态时才能执行?

我正在使用一个LEMP堆栈,单独的php5-fpm池用于两个wp页面。 nginx和php5-fpm池configuration文件都是相同的,除了站点和套接字名称。 我做静态池,每个人有两个工人。

观察到的现象如下:

  • 如果我只有一个站点活动,加载<< 1s响应是非常快的。
  • 如果我有两个站点处于活动状态,则第一个站点响应会变为1秒,而第二个站点响应会超过504秒。
  • 如果我不为不同的网站使用不同的游泳池,那么这两个网站的响应速度都会下降到2-10秒。
  • 减速只发生在PHP请求上,静态文件请求不受影响。
  • 当我尝试LAMP堆栈时发生类似的现象。

这里怎么了? 问题在哪里? 我怎么能跟踪这一个? 我无法弄清楚什么logging/debugging/统计选项我有… 🙁

编辑:

这是发展阶段,网站stream量很低,所以这个问题不能说是我用完了。 我有一个请求进来

如果每个静态池都有两名工作人员,则基本上PHP用户的工作量始终不足。

如果两个请求同时到达,则必须等到请求完成,直到可以提供进一步的请求为止。 如果有数十个请求同时进入(例如, index.php和任何提供AJAX内容的脚本),则单个页面加载将需要多个并发工作者来完成加载。 如果工人限于两人,则一个请求必须完成装载,直到下一个可以服务。

所以,我的build议是使用dynamic池至less有十个工人,最多20个开始。 监视你的php5-fpm.log中的消息,build议增加更多的工作人员,并根据这个增加最多的工作人员。

如果你的服务器不能处理大量的工作,你需要获得更多的资源。