为什么仅当多个 wordpress 站点处于活动状态时 php5-fpm 执行速度才会变慢?

为什么仅当多个 wordpress 站点处于活动状态时 php5-fpm 执行速度才会变慢?

我使用的是 LEMP 堆栈,为两个 wp 页面使用单独的 php5-fpm 池。除了站点和套接字名称外,nginx 和 php5-fpm 池配置文件都相同。我使用每个有 2 个工作器的静态池。

观察到的现象如下:

  • 如果我只有一个活动站点,则加载速度非常快<<1s 响应。
  • 如果我有两个活动站点,则第一个站点响应时间为 1 秒,第二个站点响应时间为 10 秒以上 - 通常会出现 504 超时。
  • 如果我不对不同的站点使用不同的池,那么两个站点的响应等待时间都会减慢到 2-10 秒。
  • 速度减慢仅发生在 php 请求上,静态文件请求不受影响。
  • 当我尝试 LAMP 堆栈时也发生了类似的现象。

这里出了什么问题?问题可能出在哪里?我该如何追踪这个问题?我搞不清楚我有哪些日志/调试/统计选项…… :(

编辑:

这是开发阶段,网站流量非常低,所以问题不可能是我缺少员工。我只有一个请求进来。

答案1

如果您的静态池中每个都有两个工作线程,那么您基本上会一直用尽 PHP 脚本的工作线程。

如果两个请求同时到达,则必须等到一个请求完成后才能处理下一个请求。如果同时有数十个请求(例如,index.php任何提供 AJAX 内容的脚本),则单个页面加载将需要多个并发工作程序才能完成加载。如果工作程序限制为两个,则必须等一个请求完成加载后才能处理下一个请求。

因此,我建议一开始使用动态池,最少有 10 个工作线程,最多有 20 个工作线程。监视php5-fpm.log建议添加更多工作线程的消息,并据此增加最大工作线程数。

如果您的服务器无法处理大量工作人员,您就需要获取更多资源。

相关内容