什么是 PHP 工作者以及为什么要关心?

已发表: 2022-06-30

你有没有浏览过你最喜欢的咖啡店的网站,当你检查新的咖啡订单时,你最终会在延迟后收到 504 错误?

或者,也许您正在浏览您最喜欢的体育网站,当您尝试加载下一页时,加载需要一段时间并返回超时错误?

这些情况令人沮丧,而不是我们在查看网站时所期望的。 在这两种情况下,原因可能是没有为站点分配足够的 PHP 工作人员。 如果没有足够的 PHP 工作人员,如果站点请求数量较多,站点将无法处理所有进入的站点请求。 这不是一个好情况,因为网站速度对于将访问者转化为销售线索和客户非常重要。

什么是 PHP Worker?

什么是 PHP 工作者? PHP 工作者构建页面并处理需要在您的站点上进行后端处理的请求。 PHP 工作者直接负责为您的站点访问者生成 HTML 页面。 因此,他们确定网站在任何给定时间可以处理多少未缓存的请求。

这通常是活动任务,例如对特定项目的库存检查,或者可能像查看和列出客户的所有先前订单一样复杂。 当 PHP 工作者启动时,它会保持持久性,直到进程完成或满足某些条件。

将 PHP 工作人员视为杂货店的结账线,其中要扫描的每件商品都是一个 PHP 进程。

如果您只有一个 PHP 工作人员(一条结账线),那么所有东西都必须通过那条结账通道,而收银员当时只能处理一个订单。 PHP 工作者可以限制站点上的并发或同时事务的数量。 如前所述,如果您只有四个 PHP 工作人员(四个结帐行),则该站点一次只能处理四个事务。

2022 年 WordPress 插件基本指南 >>

但是,这并不意味着第五个客户(PHP 进程)或以后的客户不会得到处理。 PHP 进程被放置在 worker 的队列中,这意味着它处理队列中的第一个请求,然后移动到队列中的下一个 PHP 进程。 换句话说,排长队,人们开始等待。

幸运的是,PHP 工作人员比杂货店收银员更快地处理信息。 它们的工作速度非常快,可以在几毫秒内清除许多和大多数进程。 通过只增加几个 PHP 工作者,您可以同时运行更多的并发进程,这意味着可以同时处理更多的客户订单。

当每个站点的 PHP 工作者太少时会发生什么

假设您在一个站点上只有两个 PHP 工作者,并且您有多个插件和一个沉重的主题。 这两个 PHP 工作人员将始终仅用于处理插件和主题进程,留下队列以立即建立来自访问者对您网站的新页面请求。

如果您在此基础上运行电子商务网站,则只会增加队列数量。 就像客户排队等候一样,一些 PHP 进程会放弃排队。 没有写出放弃线路,或者超时的进程,会坐等。 然后,他们将开始对服务器资源施加更高的负载。 就像结帐线现在环绕着街区!

WordPress 网站上的 PHP 流程可以像提交联系表格或请求根据访问者的 IP 或邮政编码对访问者进行地理定位一样简单。

对于电子商务网站,这可能看起来有点不同。 正在处理的新订单、购物车和客户登录等项目都将使用 PHP 工作者。 产品或描述通常会被缓存,因此通常不需要 PHP 进程来查看。 只有三到五个 PHP 工作人员意味着您只能在网站上同时处理那么多事务,并且 PHP 工作人员将按照触发顺序处理请求(就像购物线一样)。

如何减轻 PHP 工作者的负担

对于 PHP 工作者来说,一个常见的问题是插件过多和主题繁重。 您通常可以通过以下提示帮助缓解由网站臃肿引起的问题:

  1. 使用插件添加站点缓存
  2. 减少对远程站点的外部调用
  3. 一般网站优化

网站优化可能会变得复杂,特别是对于那些需要更多关注细节的流量较大的网站。 通常,站点越大,站点在请求样式、产品、订单和客户的方式上必须越有效率。 通过这种方式,您可以减少将 PHP 工作人员用于一般站点功能,并且 PHP 工作人员可以有效地处理重要的事情——您的流量。

Nexcess 计划附带足够的并发用户,即使是最大的站点也可以管理流量。

使用 Nexcess,作为 XS 计划的一部分,您已经拥有 20 个并发用户。 随着您升级到 XXL 计划(有 120 个),这会以 20 的增量增加。

WordPress性能优化初学者指南>>

其他托管应用程序平台在介绍性产品中提供两到四个 PHP 工作者。 Nexcess 托管 WordPress、WooCommerce 和 Magento 主机还内置了服务器端缓存,这有助于最大限度地减少使用 PHP 工作人员处理静态内容,允许 PHP 工作人员处理来自最重要的人的请求:您的客户。

使用更多 PHP 工作者维护一个更快的站点

然而,PHP 工作者可以管理数千个进程; 许多因素发挥作用,包括:

  • 他们打了多少外部电话?
  • 有多少插件与对数据库的查询竞争?

此外,将 PHP 工作者添加到站点也会增加服务器使用的资源分配。 运行的 PHP 进程越多,需要的 RAM 和 CPU 分配就越多,因此会在服务器上产生更重的负载,并且尽可能多地进行优化可以减少服务器负载。 PHP 工作者是关键,但它们不是神奇的、万能的解决方案。

插件越多(甚至是非活动的),就越多的 PHP 工作者被用来处理非静态请求。 这同样适用于特色鲜明的主题。

出于这个原因,使用缓存和内容交付网络 (CDN) 来帮助减少 PHP 工作者的任务负载始终是一个好主意。 这将优化您的网站,以尽可能最快的方式处理客户请求。

Better 内置于 Nexcess 的完全托管主机中

提高您网站的性能始于高质量的托管。 使用 Nexcess 完全托管的 WordPress 和 WooCommerce 托管,您可以获得:

  • 自动扩展以在流量激增期间保持您的站点快速。
  • 自动优化图像以加快加载时间。
  • 得益于我们内置的 CDN,闪电般的加载时间。
  • 和更多!

了解为什么用户在 Trustpilot 上给我们 4.6 星(满分 5 星)评分。 体验为您的网站优化的托管。 查看我们今天开始的计划。