性能树

范围

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

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

先决条件和假设

假定在给定页面(AEM控制台或网页)上观察到性能问题,并可以一致地重现。 在开始调查之前,要想测试或监控性能,必须先做好准备。

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

章节 1

chlimage_1-103

章节 2

chlimage_1-104

章节 3

chlimage_1-106

章节 4

chlimage_1-105

第5节

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 是否可以缓存请求? 有关可缓存请求和一般调度程序性能优化建议的详细信息,请参阅调度程序性能优化
步骤 4 请求是否来自调度程序?

检查调试程序调试文档以查看请求是否正确缓存。

步骤 5 调度程序是否正尝试通过AEM验证每个请求? 在传送缓存资源之前,检查调度程序是否向AEM发送HEAD请求以进行身份验证。 可以通过在AEM access.log中查找HEAD请求来完成此操作。 有关详细信息,请参阅日志记录
步骤 6 调度程序的地理位置是否远离用户? 将调度程序移近用户。
步骤 7 调度程序的网络层是否正常?
调查网络层的饱和度和延迟问题。

步骤 8 本地实例的速度慢是否可以重现?

使用Tough Day从生产实例复制“真实世界”条件。 如果这种情况不适用于您的开发,请确保在不同的网络上下文中测试生产实例(或相同的分阶段实例)。

步骤 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/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 让调度程序更近一些(每“区域”添加一个?)
步骤 31 在调度程序前使用CDN 将 Dispatcher 与 CDN 结合使用
步骤 32 使用调度程序级别的会话管理来卸载AEM服务器

启用安全会话

步骤 33 使请求可缓存
  1. 常规调度程序配置
  2. 配置调度程序缓存

如何提高缓存率;使请求可缓存(调度程序最佳实践)

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

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

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

跟踪链接

步骤 35 配置调度程序 配置调度程序
步骤 36 检查缓存失效
步骤37和38 延迟加载 请参阅关于AEM Web性能的Gem会话。
步骤 39 使用预连接降低连接开销 请参见上述Gem会议。 此外,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代码阻止 https://docs.adobe.com/ddc/en/gems/aem-web-performance.html

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now