性能树 performance-tree

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

范围 scope

下图旨在为解决性能问题需要采取的步骤提供指导。 它分为5个部分,以便于阅读。

图中的每个步骤都会链接到文档资源或推荐。

先决条件和假设 prerequisites-and-assumptions

假定在给定页面(AEM控制台或网页)上观察到性能问题,并且可以一致重现。 在开始调查之前,必须具备测试或监控性能的方法。

分析从步骤0开始。 目标是确定哪个实体(调度程序、外部主机或AEM)负责性能问题,然后确定应调查哪个区域(服务器或网络)。

章节 1 section

chlimage_1-103

章节 2 section-1

chlimage_1-104

章节 3 section-2

chlimage_1-105

章节 4 section-3

chlimage_1-106

章节 5 section-4

chlimage_1-107

步骤
标题
资源
步骤 0
分析请求流

您可以在浏览器中使用标准HTTP请求分析来分析请求流。 有关如何在Chrome上执行此操作的更多信息,请参阅:

https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-loadinghttps://developers.google.com/web/tools/chrome-devtools/profile/network-performance/understanding-resource-timing

步骤 2
请求是否来自外部主机?
您可以在浏览器中使用标准HTTP请求分析来分析请求流。 请参阅上述链接,了解如何在Chrome上执行此操作。
步骤 3
是否可以缓存请求?
有关可缓存请求和一般Dispatcher性能优化建议的更多信息,请参阅 调度程序性能优化.
步骤 4
是来自Dispatcher的请求吗?
检查 Dispatcher调试文档 以查看请求是否缓存正确。
步骤 5
Dispatcher是否尝试通过AEM来验证每个请求?
检查调度程序是否发送 HEAD 请求AEM进行身份验证,然后再传递缓存的资源。 您可以通过查找 HEAD AEM中的请求 access.log. 有关更多信息,请参阅 记录.
步骤 6
Dispatcher的地理位置离用户是否很远?
将Dispatcher移近用户。
步骤 7
Dispatcher的网络层是否正常?
调查网络层的饱和和延迟问题。
步骤 8
速度慢能否在本地实例中重现?
使用 艰难的一天 从生产实例中复制“真实世界”条件。 如果这对于您的开发解决方案不现实,请确保在其他网络上下文中测试生产实例(或相同的暂存实例)。
步骤 9
服务器的地理位置离用户很远吗?
将服务器移近用户。
步骤10和29
调查网络层

调查网络层的饱和和延迟问题。

对于创作层,建议延迟不要超过100毫秒。

有关性能优化提示的更多信息,请参阅 本页.

步骤 11
更靠近服务器或为每个区域添加一个
步骤 12
AEM服务器故障诊断
有关更多信息,请查看图表中的以下子步骤。
步骤 13
检查硬件要求
查看相关文档 硬件大小调整指南.
步骤 14
检查性能问题的常见原因
步骤 15
查找慢速请求

您可以通过分析 request.log 或 rlog.jar.

有关使用rlog.jar的更多信息,请参阅此页面。

请参阅 使用rlog.jar查找持续时间较长的请求.

步骤 16
配置文件服务器
有关可以与AEM一起使用的分析工具的信息,请参阅 用于监控和分析性能的工具.
步骤 17
在分析中查找慢速方法
步骤 18
分析的常见情况
请参阅 分析特定情景 在性能优化部分。
步骤 19
100% CPU
https://helpx.adobe.com/cn/experience-manager/6-3/sites-deploying/monitoring-and-maintaining.html#MonitoringPerformance
步骤 20
内存不足
  1. 内存不足
  2. 我的应用程序引发内存不足错误
  3. 在Helpx上分析内存问题。
步骤 21
磁盘I/O
请参阅 磁盘I/O 监视和维护文档中的章节。
步骤22和22.1
缓存比率
请参阅 计算调度程序缓存比率.
步骤 23
慢速查询
有关查询和索引的最佳实践
步骤 24
存储库优化
步骤 25
工作流运行
步骤 26
MSM基础架构
多站点管理器最佳实践
步骤 27
资产调整
  1. 资产同步服务
  2. 多个DAM实例
  3. 性能调整提示文章 此处 和 此处.
步骤 28
未结会话
检查未关闭的JCR会话
步骤 30
更近一些Dispatcher(每个“区域”添加一个?)
步骤 31
在调度程序之前使用CDN
将 Dispatcher 与 CDN 结合使用
步骤 32
在调度程序级别使用会话管理来卸载AEM服务器
启用安全会话
步骤 33
使请求可缓存
  1. 常规Dispatcher配置
  2. 配置调度程序缓存

如何提高缓存率;使请求可缓存(Dispatcher最佳实践)

此外,还请考虑以下设置以优化缓存配置

  1. 为非GET的HTTP请求设置无缓存规则
  2. 将查询字符串配置为不可缓存
  3. 不缓存缺少扩展名的URL
  4. 缓存身份验证标头(自Dispatcher版本4.1.10起可能)
步骤 34
升级Dispatcher版本

您可以在此位置下载最新的Dispatcher版本:

关注链接

步骤 35
配置Dispatcher
配置Dispatcher
步骤 36
检查缓存失效
步骤37和38
延迟加载
请参阅AEM Web性能的Gem会议。
步骤 39
使用预连接以减少连接开销
见上面所示的创业板会议。 此外,W3c上的其他预连接文档: https://www.w3.org/TR/resource-hints/#dfn-preconnect
步骤40和41
外部主机的延迟和响应时间
调查外部主机的延迟和响应时间。
步骤45
和47
使用HTTP/2
有关步骤37、38和39,请参见创业板会议。 另外,请查看 此 有关HTTP/2支持的论坛帖子。
步骤 49
收缩负载大小
启用Gzip 和 缩小图像大小.
步骤42和43
保持活动状态

是 Keep-Alive 标头是否存在于重复使用连接的不同请求中? 否则,这意味着每个请求都会导致另一个连接建立,这会产生不必要的开销。 (浏览器中的标准HTTP请求分析)

您可以检查 代理服务器工具 来检查“保持活动”连接。

步骤 44
发出了多少个请求?
在浏览器中执行标准HTTP请求分析。
步骤 46
减少请求数
  1. 连接资源(图像、CSS Sprite、JSON等)
  2. Clientlibs嵌入:
    1. 创建客户端库文件夹 — 请参阅使用嵌入最小化请求的标题
步骤 48
有效负载的大小是多少?
浏览器中的标准HTTP请求分析
步骤50和51
JS代码阻止
AEM Web性能
recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56