跳到正文
原文
Kinsta 博客· Carlo Daniele·· 6 天前编辑评分44

使用 Kinsta APM 和 MyKinsta 服务器日志监控 WordPress AI 工作负载

Monitor WordPress AI workloads with Kinsta APM and MyKinsta server logs

编辑导读

Kinsta APM 与 MyKinsta 服务器日志可监控 WordPress AI 工作负载的资源和性能影响,两项功能均向所有 Kinsta 客户免费提供。测试通过 WordPress.org AI 插件生成特色图片,并结合 APM 图表、访问日志、错误日志和缓存日志分析外部请求、插件、主题、钩子、数据库查询及性能瓶颈。

随着 Abilities API 和 AI Client 的推出,WordPress 已演变为真正的执行引擎,将你的应用与所选的 AI 模型连接起来。

这一重大转变改变了 CMS 的本质。但它也为整个生态系统增加了一层复杂性,使得流程可观测性和性能监控在管理现代网站时变得愈发重要。

今天,我们不只是告诉你,随着机器在访问日志中愈发频繁地出现(或更具干扰性),监控网站行为有多么重要。我们希望向你提供清晰、具体的证据,证明这些新的 AI 功能如何直接影响你的网站资源。

为此,我们将使用两款 MyKinsta 工具:Kinsta APM(我们的应用性能监控工具)和服务器访问日志。这两项功能均向所有 Kinsta 客户免费提供。

想了解 AI 究竟对你的 WordPress 网站产生了多大影响吗?让我们深入探究!

如何在 WordPress 中监控 AI 工作负载

你的网站会以多种方式与 AI 交互。这些方式包括 AI 机器人和爬虫扫描、插件通过 AI Client 在内部执行的操作,以及外部应用和 AI 智能体通过 Abilities API 查询你的网站时发出的请求。

想象一下生成一张图片或转录一个音频文件所需的时间。这些 AI 操作通常需要数秒才能完成。在此期间,一个 PHP 工作进程/线程将无法用于其他操作,无论这些操作是由真人用户还是机器触发。

虽然这未必会成为每个网站的问题,但对于拥有数百或数千种产品的高流量商业网站和电商商店而言,它将成为需要密切监控的关键因素。

应用性能监控(APM)工具可以帮助你准确衡量 AI 对 WordPress 网站造成的影响。

你可以使用 New Relic 等工具来跟踪 WordPress 事务、钩子、插件、主题、数据库查询、外部请求,以及所有有助于定位性能问题的内容。

Kinsta 用户可以直接在 MyKinsta 仪表板中使用免费的应用性能监控工具。

A screenshot sowing the landing page of the APM took in MyKinsta.
在 MyKinsta 中启用 Kinsta APM 工具。

要启用 Kinsta APM,请进入 Sites > sitename > APM,然后点击 Enable。选择所需的时间间隔,让该工具记录你的网站活动。

监控完成后,你会收到一封自动发送的电子邮件,其中包含结果页面的链接。你可以深入查看详细图表,涵盖事务、插件、主题、钩子、缓慢的数据库查询和外部请求。

Slowest external requests tab in Kinsta APM
Kinsta APM 中最慢外部请求标签页

访问日志和错误日志也是了解底层运行情况的宝贵信息来源。通常,你可以通过托管控制面板或通过 FTP 或 SSH 进入服务器文件系统来访问服务器日志。

这些日志提供全面的数据,可用于排查错误、识别性能瓶颈并确定主要流量来源。

Kinsta 用户可以通过 SFTP 或 SSH 直接从服务器下载日志文件,也可以通过 MyKinsta 文件管理器下载。你还可以使用 MyKinsta Log viewer 直接查看错误日志、缓存日志和访问日志。

access.log file in the MyKinsta Log viewer.
MyKinsta Log viewer 中的 access.log 文件。

在接下来的章节中,我们将分析一次 AI 操作,帮助你了解如何衡量 AI 使用对你的网站所产生的影响,以及为什么这需要完善的基础设施和适当的监控。

让我们通过要求一个 AI 模型为一篇博文生成特色图片来看一个真实案例。

信息

以下测量示例基于在不同时间执行的 AI 操作。因此,每次测试记录的时间会略有差异。

在 WordPress 中进行 AI 图片生成

在我们的测试中,我们使用官方的 WordPress.org AI 插件,让 AI 为一篇 WordPress 博文生成特色图片。要运行相同的测试,请按照以下步骤操作:

  1. 在 WordPress 管理后台的“连接器”界面中配置连接器
  2. 安装并启用官方的 WordPress.org AI 插件
  3. 启用 Kinsta APM,并在 MyKinsta 中监控访问日志
  4. 创建一篇新文章,并使用 AI 功能生成新的特色图片

让我们开始吧。

第 1 步:在“连接器”界面中配置连接器

要开始操作,你需要从 AI 提供商处获取 API 密钥。我们不会在此介绍这一步,但你可以查看提供商的文档了解详细信息。

获得 API 密钥后,打开网站管理后台并进入 设置 > 连接器。点击 AI 提供商对应的 启用 按钮,然后输入你的 API 密钥。

Connectors screen
WordPress 管理后台中集中管理的 AI 连接器界面。

第 2 步:安装并启用官方的 WordPress.org AI 插件

WordPress 默认提供相关 API 和抽象层。要为你的网站添加 AI 图片生成功能,需要安装一个利用 AI 核心基础设施的插件,例如 WordPress.org 提供的官方 AI 插件。

该插件会添加多项功能,你可以在 工具 > 功能浏览器 下的 功能浏览器 界面中查看这些功能。

The Abilities Explorer screen.
由 WordPress.org AI 插件生成的功能浏览器界面。

在已注册的功能中,请注意 图片生成与编辑。调用此功能时,你可以根据文章内容或自定义提示词,从媒体库中生成特色图片。

第 3 步:启用 Kinsta APM,并在 MyKinsta 中监控访问日志

在 MyKinsta 中,进入 网站 > 站点名称 > APM 并启用 Kinsta APM。将监控时长设置为 2 小时,然后点击 启用监控时间。

Enable Kinsta APM monitoring time.
启用 Kinsta APM 监控时间。

APM 工具在后台跟踪性能的同时,进入 网站 > 站点名称 > 日志,并选择 access.log 标签页。你可以保留默认设置。

第 4 步:创建新文章,并使用 AI 生成新的特色图片

现在,回到 WordPress 管理后台,创建一个新文章,输入标题和部分内容,然后点击右侧的 生成特色图片 按钮。

Generate featured image in the block editor.
在区块编辑器中生成特色图片。

片刻后,文章设置侧边栏中会显示一张由 AI 生成的特色图片。

The AI-generated featured image.
由 AI 生成的特色图片。

我们要监控的操作现已完成。接下来可以开始分析数据。

衡量 AI 图片生成的资源消耗

现在,让我们衡量通过 WordPress Abilities API 发起图像生成请求所产生的影响。本次测试结果并非固定不变,因为它们在很大程度上取决于提供商 API 的处理和响应时间,以及插件发送请求时执行的具体操作。

我们的目标是提供一个框架和方法,让你可以在自己的预发布环境中轻松复现,以衡量 AI 操作的资源消耗和执行时间。

我们提出的分析会兼顾两个方面。在服务器端,我们将使用 Kinsta APM 分析事务,并通过 MyKinsta Log 查看器监控 HTTP 请求。在客户端,我们将使用浏览器开发者工具监控底层发生的情况。

让我们开始吧!

Kinsta APM 详细分析

为你的文章生成 AI 特色图片后,请等待几分钟,然后返回 MyKinsta 中的 Kinsta APM 页面,开始探索各个选项卡。

Transactions 选项卡显示一个Overall transaction time图表和一个Slowest transactions表格,其中事务代表为响应 WordPress 站点请求而发生的后端活动(参见文档)。

下图显示了两分钟时间窗口内的总体事务时间,其中 PHP 执行耗时约 27 秒,MySQL 耗时 271 毫秒,外部事务则占用了超过 19 秒。

Overall transaction time in Kinsta APM.
Kinsta APM 中的总体事务时间。

下表列出了Slowest transactions。可以看到,以 /wp-json 端点为目标的请求占用了最多的事务时间。

Slowest transactions in Kinsta APM.
Kinsta APM 中最慢的事务。

WordPress 选项卡提供Slowest WordPress plugins和Slowest WordPress hooks表格。正如预期,最慢的插件是ai-provider-for-google和ai,两者合计占总时长的近 90%。

Slowest WordPress plugins.
最慢的 WordPress 插件。

External 选项卡显示最慢的外部请求,并按Total duration排序。

Slowest external requests in Kinsta APM.
Kinsta APM 中最慢的外部请求。

让我们详细分析这些数据:

  • Total Duration (%): 这是所选时间范围内所有事务端点请求所消耗时间的百分比。请注意,此值是发往某个端点的所有请求耗时之和,而不是单个事务样本的耗时。在我们的示例中,发往 generativelanguage.googleapis.com 端点的 POST 请求占所有外部事务的 95.51%,发往同一端点的 GET 请求占 3.94%。
  • Total Duration: 这是事务端点在所选时间范围内消耗的绝对时间。同样,此值表示发往特定端点的所有请求耗时之和。在我们的示例中,generativelanguage.googleapis.com POST 请求的累计耗时超过 18 秒。
  • Max Duration: 所选时间范围内最慢的事务样本耗时。
  • Avg. Duration: 所选时间范围内所有事务样本耗时的平均值。
  • Rate Per Min: 事务每分钟执行的平均次数。

点击特定请求后,会弹出Transaction samples模态窗口,显示所选 POST 请求运行时的样本。

Transaction samples in Kinsta APM.
Kinsta APM 中的事务样本。

点击最慢的事务样本,查看事务跟踪时间线表。在这里,你可以看到特定事务样本中各个跨度(PHP 进程、MySQL 数据库查询和外部调用)的分步演示(参见文档)。

Transaction trace timeline.
事务跟踪时间线。

如果点击事务跟踪时间线中的某个跨度,你将看到详细概览和完整的堆栈跟踪。

堆栈跟踪详细列出了执行的确切 PHP 代码,包括具体文件和行号(参见文档)。

下图显示了处理图像生成的事务的完整堆栈跟踪:

Span details in Transaction trace timeline.
事务跟踪时间线中的跨度详情。

详细拆分如下:

第 1 步:初始化请求

WordPress 接收 HTTP 请求,通过 wp-blog-header.php 启动核心系统,并通过 REST API 控制器(WP_REST_Server)进行调度,以同步处理传入的请求。

Initializing the HTTP request.
初始化 HTTP 请求。

第 2 步:触发 Ability

Generate_Image.php 调用 WordPress\AI\Abilities\Image 命名空间中的 generate_image ability 来生成文章图像。

Triggering the generate_image Ability.
触发 generate_image Ability。

第 3 步:路由到客户端

class-wp-ability.php 执行回调,将执行委托给 WP_AI_Client 模块。

Routing the execution to the AI Client.
将执行路由到 AI Client。

第 4 步:构建提示词

PromptBuilder.php 构建提示词,GoogleTextGenerationModel.php 则将指令转换为与 Gemini API 兼容的请求格式。

Building the prompt.
构建提示词。

第 5 步:移交给 HTTP 传输层

HttpTransporter.php 将执行移交给 WordPress HTTP API(http.php -> WP_Http->request)。

Handing off to the HTTP transport layer.
移交给 HTTP 传输层。

第 6 步:建立 HTTP 连接

WP_Http 打开同步连接,使 PHP 工作进程保持占用,直到 Google 返回响应(参见官方文档)。

Opening a synchronous connection.
建立同步连接。

要点

这里的关键要点是,我们测量的图像生成任务是一项同步、阻塞操作。

调用在同一个 HTTP 请求生命周期内从 WP_REST_Server 传递到 WP_Http->request。因此,PHP 线程会等待图像生成并返回。

在此示例中,处理请求的 PHP 线程持续忙碌了 +8 秒。额外可用的线程仍可处理其他请求。不过,并发 AI 操作可能耗尽 PHP 内存池,并增加排队、延迟和超时风险(参见 Kinsta 如何帮助你管理 PHP 线程和内存使用量)。

服务器日志拆解

堆栈跟踪记录服务器为处理特定请求而依次经过的确切 PHP 函数、方法、文件和代码行,而访问日志则记录 Web 服务器层面的 HTTP 请求。

访问日志显示谁发起了请求(IP 地址和 User Agent)、请求了什么内容(URL 或 API 端点)、响应状态码以及请求的总执行时间。

简而言之,日志分析让你能够完整、不受过滤地了解 AI 操作期间服务器上发生的情况,例如在我们的示例中生成特色图像。

为了生成那一张图像,WordPress 顺序执行了四次对 Abilities API 的调用。

以下是跟踪与 Google API 交互的日志:

1. 提示词生成

POST "/wp-json/wp-abilities/v1/abilities/ai/image-prompt-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 5.432s
The prompt generation log in MyKinsta.
MyKinsta 中的提示词生成日志
  • 这条日志告诉你:插件使用 image-prompt-generation ability 将文章内容发送到 Gemini,以生成描述性图像提示词(例如,“一个人与 sleek futuristic robot 握手……”)。
  • 延迟: 与 Google API 通信耗时 5.43 秒。

信息

有关访问日志字段的详细说明,请参阅 Kinsta 文档。

2. 图像生成

POST "/wp-json/wp-abilities/v1/abilities/ai/image-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 9.795s
The image generation log in MyKinsta.
MyKinsta 中的图像生成日志。
  • 此日志告诉你的内容: 此日志条目与我们在 Kinsta APM 部分分析的 transaction sample 和 stack trace 直接对应。该插件通过 image-generation 功能将生成的提示词发送到 Google 的图像生成模型(Imagen)。
  • PHP 执行时间: 等待图像的二进制/base64 数据载荷耗时 9.79 秒。

3. 替代文本生成

POST "/wp-json/wp-abilities/v1/abilities/ai/alt-text-generation/run?_locale=user" HTTP/2.0 200
PHP execution time: 11.305s
The alt text generation log.
替代文本生成日志。
  • 此日志告诉你的内容: 图像创建后,系统会立即触发另一次对 Abilities API 的自动调用,以生成替代文本。该功能随后调用 Gemini 来分析并描述新生成的图像。
  • PHP 执行时间: 总计 11.30 秒。

图像已生成。下一步是将其注册到 WordPress 媒体库。

4. 媒体集成

POST "/wp-json/wp-abilities/v1/abilities/ai/image-import/run?_locale=user" HTTP/2.0 200
PHP execution time: 0.839
The image import log in MyKinsta.
MyKinsta 中的图像导入日志。
  • 此日志告诉你的内容: WordPress 通过 image-import 功能从外部 API 下载文件载荷,并将其注册到媒体库。
  • PHP 执行时间: 0.839 秒。

5. 下载图像

GET "/wp-content/uploads/2026/09/a-person-shaking-hands-with-a-sleek-futuristic-robot-inside-a-glass-dome-1024x559.jpg" HTTP/2.0 200
PHP execution time: 0.000
Image download log.
图像下载日志。
  • 此日志告诉你的内容: 区块编辑器直接从 uploads 目录获取已导入的图像文件,以在界面中呈现。这是由 Web 服务器直接提供的静态资源,无需进行 PHP 处理。
  • PHP 执行时间: 0.000 秒。

访问日志告诉你的内容

如果将单次图像生成整个工作流中的执行时间相加,就能得出完整操作的总执行时间,其中包括提示词生成、图像生成、替代文本生成以及图像导入 WordPress。

在我们的示例中,日志提供了以下执行时间:

  • image-prompt-generation: 5.43s
  • image-generation: 9.79s
  • alt-text-generation: 11.30s
  • image-import: 0.84s

总计:约 27.36 秒的 PHP 线程处理累计时间!

这证实了我们最初的假设:在资源有限的传统托管环境中,如果同时运行两项或三项基于 AI 的任务,服务器很快就会达到 PHP 线程饱和,并在数秒内停止响应网站的其他访问者。

PHP thread limit diagram in MyKinsta Analytics.
MyKinsta Analytics 会显示网站达到所分配 PHP 线程上限的次数。

如果你的网站实现了多项 AI 功能,那么托管基础设施就变得更加关键。此外,Kinsta APM 和 MyKinsta 访问日志 等监控工具非常适合用于衡量 AI 工作负载的影响、定位性能瓶颈,以及采用适当的优化措施。

客户端 HTTP 请求分解

虽然 Kinsta APM 和服务器访问日志可以帮助你了解 AI 对网站基础设施的影响,但浏览器开发者工具能让你从客户端角度分析整个工作流。

分析网络调用时,请遵循以下步骤:

  1. 打开 WordPress 管理后台并创建一篇新文章。
  2. 按 F12 打开你常用浏览器的开发者工具(在 Mac 上也可使用 右键 > 检查 / Cmd + Option + I)。
  3. 选择 Network 标签页,并按 Fetch/XHR 筛选,以仅显示异步/REST API 调用。
  4. 准备好后,在区块编辑器中点击 Generate featured image 按钮。

对 Abilities API 端点的请求开始流入 Network 面板。在 Firefox 开发者工具中,这些请求会带有海龟图标,表示请求速度较慢。

逐一点击这些请求,查看每个请求的 Request、Response 和 Timings 标签页。

1. 提示词生成

第一次调用 Google AI API 会生成提示词。在此操作中,请求载荷包含文章标题和内容。

Prompt generation request payload.
此提示词生成请求的载荷是文章内容。

响应是发送给 Imagen 模型的提示词。

The Google API response.
Google API 响应。

接下来,切换到 Timings 标签页查看执行时间。这次最新图片的提示词生成耗时 5.52 秒。

Prompt generation timings.
提示词生成导致的等待时间为 5.52s。

2. 图像生成

随后是图像生成请求。请求载荷是上一次请求收到的提示词。

Image generation request.
图像生成请求的载荷是收到的提示词。

Google API 响应将是图像的 base64 载荷。

Image generation response.
Google AI 响应是图像的 base64 载荷。

Timings 标签页提供图像生成的总执行时间。该请求等待了 9.92 秒。

Image generation timings.
图像生成的等待时间接近 10 秒。

3. 替代文本生成

第三次调用时,Abilities API 请求 Google API 生成图像的替代文本。请求包含 base64 图像载荷。

Alt text request.
Abilities API 发送生成图像替代文本的请求。

API 响应包含图像的替代文本。

Alt text generation response.
来自 Google API 的响应是图像的替代文本。

尽管输出内容简洁,但解码图像并生成文本的过程特别慢:7.32s。

Alt text generation wait time.
替代文本生成的等待时间。

4. 图像下载

第四个 Abilities API 请求会处理二进制载荷、下载图像文件、生成图像裁剪版本,并将图像登记到 WordPress 媒体库。这个最终请求的等待时间为 1.79s。

Image download wait time.
图像下载的等待时间。

现在 let's 汇总 Abilities API 为生成特色图片而执行的四个请求的等待时间:

  • 提示词生成:5.52s
  • 图像生成:9.92s
  • 替代文本生成:7.32s
  • 图像下载和登记:1.79s

总等待时间高达 24.55 秒。

AI 对网站基础设施的影响

无论你使用第三方插件还是自定义代码为网站添加 AI 功能,了解其对服务器性能和资源消耗的影响都至关重要。

资源管理效率低下或代码架构不佳,很快就会使服务器过载,导致 PHP 资源饱和、服务器超时、带宽使用量过高、HTTP 5xx 错误,甚至网站完全宕机。

高性能云主机基于容器化基础设施构建,具备多级缓存、自动数据库优化和可扩展的 PHP 工作进程;它无法神奇地消除 AI 的处理负载。然而,它能为网站提供必要的缓冲余量,在瓶颈和性能峰值影响访问者之前加以解决。

没人希望网站在黑色星期五等流量高峰期间变得 sluggish,而当正常运行时间直接影响收入时,企业也承受不起服务器超时。随着机器在推动网站功能方面发挥更大作用,选择一个高性能、可扩展的托管提供商已不再是可选项。

Kinsta 提供现代 WordPress 网站在 AI 时代蓬勃发展所需的高性能、安全性和可观测性。想亲眼看看其中的差异吗?点击此处查看我们的方案。

文章《使用 Kinsta APM 和 MyKinsta 服务器日志监控 WordPress AI 工作负载》首次发布于 Kinsta®。

来源:Kinsta 博客 · https://kinsta.com/blog/monitor-wordpress-ai-workloads/

部分链接为推广/关联链接。