下图旨在为解决性能问题需要采取的步骤提供指导。 它分为5个部分,以便于阅读。
图中的每个步骤都会链接到文档资源或推荐。
假定在给定页面(AEM控制台或网页)上观察到性能问题,并且可以一致重现。 在开始调查之前,必须具备测试或监控性能的方法。
分析从步骤0开始。 目标是确定哪个实体(调度程序、外部主机或AEM)负责性能问题,然后确定应调查哪个区域(服务器或网络)。
步骤 | 标题 | 资源 |
步骤 0 | 分析请求流 | 您可以在浏览器中使用标准HTTP请求分析来分析请求流。 有关如何在Chrome上执行此操作的更多信息,请参阅: https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/resource-loading |
步骤 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 | 查找慢速请求 | 您可以通过分析 有关使用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 | 内存不足 | |
步骤 21 | 磁盘I/O | 请参阅 磁盘I/O 监视和维护文档中的章节。 |
步骤22和22.1 | 缓存比率 | 请参阅 计算调度程序缓存比率. |
步骤 23 | 慢速查询 | 有关查询和索引的最佳实践 |
步骤 24 | 存储库优化 | |
步骤 25 | 工作流运行 |
|
步骤 26 | MSM基础架构 | |
步骤 27 | 资产调整 | |
步骤 28 | 未结会话 |
|
步骤 30 | 更近一些Dispatcher(每个“区域”添加一个?) | |
步骤 31 | 在调度程序之前使用CDN | 将 Dispatcher 与 CDN 结合使用 |
步骤 32 | 在调度程序级别使用会话管理来卸载AEM服务器 | |
步骤 33 | 使请求可缓存 |
如何提高缓存率;使请求可缓存(Dispatcher最佳实践) 此外,还请考虑以下设置以优化缓存配置
|
步骤 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 | 保持活动状态 | 是 您可以检查 代理服务器工具 来检查“保持活动”连接。 |
步骤 44 | 发出了多少个请求? | 在浏览器中执行标准HTTP请求分析。 |
步骤 46 | 减少请求数 |
|
步骤 48 | 有效负载的大小是多少? | 浏览器中的标准HTTP请求分析 |
步骤50和51 | JS代码阻止 | AEM Web性能 |