性能树 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.logrlog.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