网站

网站性能和 APM

Application Performance Monitoring tells you where your site's time actually goes: response time percentiles, the slowest URLs, the slowest database queries, and how hard PHP is working. This guide…

网站性能和 APM

应用程序性能监控会告诉你网站的时间实际上花在哪里:响应时间百分位数、最慢的 URL、最慢的数据库查询,以及 PHP 的工作压力。本指南涵盖启用 APM、阅读每个面板以及根据其显示的内容采取行动。

APM 在 KPanel 中的位置

  1. 登录 KPanel
  2. 在左侧边栏中点击网站,然后点击该网站。
  3. 在网站的标签栏中,打开 WordPress,然后打开 APM

直接地址是 /websites/<site-id>/performance

KPanel 中网站的应用程序性能监控

APM 是一个计划权限。它包含在 Managed WordPress Pro 中。在任何其他计划中,该页面会显示一个升级面板,说明 APM 涵盖的内容,而不是显示仪表板。如果你看到该面板,说明该功能在你当前的计划中不可用,而不是被关闭了。

打开 APM

APM 默认处于关闭状态,需要你启用它。在符合条件的计划中,该页面会显示一个应用程序性能监控卡片和一个启用 APM 按钮。

启用它会在 PHP worker 级别添加一个轻量级访问日志和一个慢请求追踪器。它不会向你的页面注入任何内容,也不会给访问者的请求增加任何工作,因此可以安全地永久开启。

启用后,该页面会显示一个APM 活跃徽章及其打开的日期、一个刷新按钮和一个禁用 APM 按钮。只有在收到真实流量后才会显示指标,所以流量较少的网站会显示等待请求一段时间。

响应时间

第一个卡片包含过去一小时的四个数据,其标头中包含请求计数和捕获时间。

指标含义
中位数 (P50)一半的请求速度快于此值
P9595% 的请求速度快于此值
P9999% 的请求速度快于此值
5xx 错误率因服务器错误而失败的请求比例

每个图块都采用颜色编码,因此你可以在不知道阈值的情况下读取状态。

一起阅读百分位数,而不是单独阅读。中位数很好但 P95 很糟糕意味着大多数请求都很好,但少数请求很慢,这是一个慢页面、一个慢查询或在某些 URL 上缓存未命中的典型特征。中位数差意味着整个网站都很慢,原因通常是结构性的:计划规模过小、主题过重或缓存关闭。

5xx 错误率是唯一应该为零的数据。任何持续高于零的值都意味着访问者看到了失败。

PHP Worker

PHP Worker 卡片显示三个数字:

  • 活跃 Worker:当前正在处理请求的 PHP 进程数。
  • 慢请求:超过慢请求阈值并被记录的请求。
  • 已处理总数:自池启动以来接受的连接数。

活跃 Worker 是饱和度信号。如果在正常流量期间它始终保持接近上限,请求就会在 PHP 后面排队,上面页面中的每个响应时间部分是队列时间。这是一个容量问题,不是代码问题,解决方案是更大的计划或每个请求的工作量更少。

随着请求量稳定而慢请求计数不断增加意味着某些内容变得昂贵了。

最慢的端点

此卡片按 P95 响应时间列出你最慢的 URL,每个都有一个条形图、以毫秒为单位的 P95 以及它收到的调用次数。颜色标记最坏的情况。

将其作为快速列表读取,而不是排行榜。你想要的是慢速和频繁调用的交集:一个需要四秒钟且每天被访问两次的页面远不如一个需要 900 毫秒且每天被访问一万次的页面重要。

常见的原因:

  • 搜索页面,在没有索引的情况下进行扫描。
  • 分类和存档列表,每个请求都构建大型查询。
  • 购物车、结账和账户页面,因为它们是按访问者划分的,所以永远不会被缓存。有关哪些路径按设计绕过缓存,请参阅网站缓存
  • 管理员 URL,始终是动态的。
  • 在请求内调用外部 API 的任何内容,你正在测量他人的服务器。

慢查询

慢查询卡片列出数据库自身性能数据中平均超过 100 毫秒的数据库查询。每一行显示平均时间、最大时间、调用次数和规范化的查询文本。

查询文本是摘要形式,字面值被剥离,所以带有不同参数的相同查询会分组到一行中。这就是使调用计数有意义的原因。

修复慢查询通常是三件事之一:添加查询需要的索引、通过缓存其结果来减少查询的运行频率,或移除生成它的插件。调用计数很高且平均值中等的查询在聚合中通常比单个显著异常值更糟。

如果端点和查询列表都为空,卡片会说未检测到慢请求,这意味着过去一小时内的所有内容都在正常阈值内。

充分利用 APM

建立基准。 在网站健康时查看数字,以便了解正常情况下的样子。P95 为 700 毫秒意味着什么都不是,直到你知道它曾经是 300。

一次更改一项内容。 启用缓存、刷新并比较。停用可疑插件、刷新并比较。批量更改无法给你任何信号。

刻意刷新。 刷新按钮按需重新读取指标。这些数据涵盖过去一小时,所以在判断更改之前给它一点时间。

同时查看 APM 之外的内容。 APM 测量你的应用程序。如果问题在网络或边缘而不是代码中,网站流量分析网站正常运行时间监控会改为显示它。

故障排除

页面显示升级面板。 APM 包含在 Managed WordPress Pro 中。在其他计划中不可用。

APM 已打开但没有指标。 还没有流量。网站接收请求后指标就会出现。

APM 中的响应时间很好,但网站感觉很慢。 APM 仅测量服务器端时间。在浏览器中下载图像、运行 JavaScript 和加载字体所花费的时间在这里是不可见的。如果服务器时间很好但页面仍然感觉很慢,问题就在前端或你要求浏览器获取的内容中。

插件更新后 P95 变差。 检查最慢端点列表,然后检查慢查询列表。向每个页面加载添加查询的插件将在两者中显示。

一切都一直很慢。 首先检查 PHP Worker 的饱和度。如果 Worker 已满,在优化任何其他内容之前增加容量或减少每个请求的工作量。

错误高于零。 在追求毫秒之前修复这些。从你的日志开始,使用网站错误页面标签中的 Troubleshoot with Kora 按钮,该按钮要求 Kora 为你读取错误日志和最近的失败。请参阅自定义错误页面

相关页面

  • 网站缓存通常是 WordPress 网站的最大收益。
  • 网站安全在同一网站上进行漏洞和恶意软件扫描。
  • 备份开始移除插件之前。

仍需帮助?

请发送邮件至 support@kapsulehost.com 或在 KPanel 中打开聊天。

打开 KPanel