应用性能监控针对 WordPress 和 WooCommerce 网站,能告诉您网站的时间究竟花在了哪里:响应时间百分位数、最慢的 URL、最慢的数据库查询,以及 PHP 的工作负荷情况。本指南将介绍如何启用 APM、读取各个面板,以及根据所显示的内容采取相应行动。
APM 在 KPanel 中的位置
- 登录 KPanel。
- 点击左侧边栏中的网站(Websites),然后点击对应的网站。
- 在该网站的左侧菜单中,打开性能(Performance),然后点击APM。
直接访问地址为 /websites/<site-id>/performance。

APM 是一项计划权益,随 Managed WordPress Pro 计划附带提供。在其他任何计划下,该页面会显示升级提示面板,说明 APM 所涵盖的内容,而不会显示仪表盘。如果您看到此面板,表示该功能在您当前的计划中不可用,而不是被关闭了。
开启 APM
在您启用之前,APM 处于关闭状态。在符合条件的计划下,该页面会显示一个应用性能监控卡片,并带有启用 APM按钮。
启用后,系统会在 PHP 工作进程层面添加一个轻量级的访问日志和慢速请求追踪器。它不会向您的页面注入任何内容,也不会给访客的请求增加任何负担,因此可以安全地永久保持开启状态。
启用后,该页面会显示一个带有开启日期的APM 活跃标签、一个刷新(Refresh)按钮,以及一个禁用 APM按钮。指标只会在有真实流量到达后才会出现,因此访问量较少的网站可能会在一段时间内显示等待请求中。
响应时间
第一个卡片显示最近一小时内的四项数据,标题中包含请求数量和采集时间。
| 指标 | 含义 |
|---|---|
| 中位数 (P50) | 一半的请求比此数值更快 |
| P95 | 95% 的请求比此数值更快 |
| P99 | 99% 的请求比此数值更快 |
| 5xx 错误率 | 因服务器错误而失败的请求所占比例 |
每个方块都有颜色标记,因此您不必了解具体阈值就能判断状态。
请将这些百分位数结合起来看,而不是单独看。如果中位数良好但 P95 非常糟糕,说明大多数请求正常,只有少数请求体验很差,这是单个慢页面、单个慢查询或某些 URL 缓存未命中的典型特征。如果中位数本身就不好,说明整个网站都慢,原因通常是结构性的:计划规格过小、主题过于沉重,或缓存未开启。
5xx 错误率是唯一应该为零的数值。任何持续高于零的情况都意味着访客正在遭遇失败。
PHP 工作进程
PHP 工作进程卡片显示三项数值:
- 活跃工作者:当前正在处理请求的 PHP 进程数量。
- 慢速请求:超过慢速请求阈值并被记录下来的请求。
- 总计已处理:进程池启动以来已接受的连接数。
活跃工作者数量是一种饱和度信号。如果在正常流量下该数值始终贴近上限,说明请求正在 PHP 层面排队等待,上方页面中所有响应时间中都包含了一部分排队时间。这是容量问题,而不是代码问题,解决方法是升级到更大的计划或降低每个请求的处理开销。
如果慢速请求数量在请求量保持稳定的情况下持续上升,说明某些环节的开销变大了。
最慢端点
此卡片按 P95 响应时间列出您网站上最慢的 URL,每一项都附带一个柱状图、以毫秒表示的 P95 数值,以及该端点收到的调用次数。颜色会标出最严重的几项。
请将其视为一份候选清单,而不是排行榜。您真正需要关注的是“慢”和“调用频繁”二者的交集:一个耗时四秒但每天仅被访问两次的页面,远不如一个耗时 900 毫秒但被访问一万次的页面重要。
常见的元凶包括:
- 没有建立索引、需要全表扫描的搜索页面。
- 每次请求都要构建大型查询的分类和归档列表页面。
- 购物车、结账和账户页面,由于这些页面是逐访客独立生成的,因此从设计上永远不会被缓存。请参阅网站缓存了解哪些路径会按设计绕过缓存。
- 管理后台 URL,这些页面始终是动态生成的。
- 请求内部调用外部 API 的任何内容,这种情况下,您实际测量的是对方服务器的性能。
慢查询
慢查询卡片列出平均耗时超过 100 毫秒的数据库查询,数据来自数据库自身的性能数据。每一行显示平均耗时、最长耗时、调用次数以及标准化后的查询文本。
查询文本是经过摘要处理的,去除了具体的字面值,因此参数不同但结构相同的查询会被归入同一行。这也正是调用次数具有意义的原因。
解决慢查询问题通常有三种方式:为该查询添加所需的索引、通过缓存查询结果来减少其执行频率,或者直接移除产生该查询的插件。调用次数非常高、平均耗时中等的查询,其总体影响往往比单个耗时惊人的异常查询更严重。
如果端点列表和查询列表都为空,该卡片会显示未检测到慢速请求,这意味着过去一小时内的所有数据都在正常阈值范围内。
善用 APM
建立基线。 在网站运行状况良好时查看这些数据,以便了解正常状态是什么样子。在您知道 P95 过去是 300 毫秒之前,现在的 700 毫秒本身毫无意义。
一次只改变一项。 启用缓存、刷新,然后比较。停用一个可疑插件、刷新,然后比较。批量修改无法给您提供有效的判断依据。
有意识地刷新。 刷新(Refresh)按钮会按需重新读取指标。这些数据覆盖最近一小时,因此在评判某项改动的效果之前,请给它一点时间。
也要关注 APM 之外的内容。 APM 只衡量您的应用程序本身。如果问题出在网络或边缘节点而不是代码上,网站流量分析和网站正常运行时间监控会为您显示这些信息。
故障排查
页面显示升级提示面板。 APM 随 Managed WordPress Pro 计划附带提供。其他计划则不包含此功能。
APM 已开启但没有任何指标。 目前还没有流量。指标会在网站收到请求后才会出现。
APM 中的响应时间正常,但网站感觉很慢。 APM 仅衡量服务器端的耗时。浏览器中下载图片、运行 JavaScript 和加载字体所花费的时间在这里是不可见的。如果服务器端耗时良好但页面依然感觉很慢,问题就出在前端,或者出在您让浏览器去获取的内容上。
插件更新后 P95 变差了。 先检查最慢端点列表,再检查慢查询列表。如果某个插件在每次页面加载时都增加了一次查询,这两个列表中都会显示出来。
所有请求一直都很慢。 首先检查 PHP 工作进程是否饱和。如果工作进程持续处于上限,请先增加容量或降低每个请求的处理开销,再考虑其他优化措施。
错误率高于零。 请先修复这些问题,再去追求毫秒级的优化。从日志入手,并使用网站错误页面标签页中的“使用 Kora 排查问题”按钮,让 Kora 为您读取错误日志和近期的失败记录。请参阅自定义错误页面。