CDN缓存命中率分析

在CDN中缓存的内容可减少网站用户遇到的延迟,这些用户无需等待请求返回Apache/Dispatcher或AEM发布。 考虑到这一点,优化CDN缓存命中率以最大限度地增加CDN可缓存的内容量是值得的。

了解如何分析AEM as a Cloud Service提供的​ CDN日志,并获得​ 缓存命中率 ​以及​ MISS ​和​ PASS ​缓存类型​ ​顶级URL等见解,以进行优化。

CDN日志以JSON格式提供,其中包含各种字段,包括urlcache。 有关详细信息,请参阅CDN日志格式cache字段提供了有关缓存​ ​状态的信息,其可能值为HIT、MISS或PASS。 让我们查看可能值的详细信息。

缓存的状态
可能值
描述
点击
请求的数据在CDN缓存中找到​ ,不需要向AEM服务器发出fetch ​请求。
小姐
在CDN缓存中找不到请求的数据​ ,必须从AEM服务器请求
通过
所请求的数据是​ 显式设置为不缓存,并且始终从AEM服务器中检索。

在本教程中,AEM WKND项目部署到AEM as a Cloud Service环境,并使用Apache JMeter触发小规模性能测试。

本教程旨在引导您完成以下过程:

  1. 通过Cloud Manager下载CDN日志
  2. 通过分析这些CDN日志,可通过两种方法执行该操作:本地安装的仪表板或远程访问的Splunk或Jupityer Notebook(适用于许可Adobe Experience Platform的用户)
  3. 优化CDN缓存配置

下载CDN日志

要下载CDN日志,请执行以下步骤:

  1. my.cloudmanager.adobe.com登录Cloud Manager并选择您的组织和程序。

  2. 对于所需的AEMCS环境,请从省略号菜单中选择​ 下载日志

    下载日志 — Cloud Manager {width="500" modal="regular"}

  3. 在​ 下载日志 ​对话框中,从下拉菜单中选择​ Publish ​服务,然后单击​ CDN ​行旁边的下载图标。

    CDN日志 — Cloud Manager {width="500" modal="regular"}

如果下载的日志文件来自​ today,则文件扩展名为.log,否则对于过去的日志文件,扩展名为.log.gz

分析下载的CDN日志

要获得诸如缓存命中率以及MISS和PASS缓存类型的顶级URL等见解,请分析下载的CDN日志文件。 这些见解有助于优化CDN缓存配置并增强站点性能。

要分析CDN日志,本教程提供了三个选项:

  1. Elasticsearch、Logstash和Kibana (ELK)ELK仪表板工具可以本地安装。
  2. SplunkSplunk仪表板工具需要访问Splunk并启用AEMCS日志转发以摄取CDN日志。
  3. Jupyter Notebook:对于拥有Adobe Experience Platform许可证的客户,可以作为Adobe Experience Platform的一部分远程访问它,而无需安装其他软件。

选项1:使用ELK仪表板工具

ELK栈栈是一组工具,可提供可伸缩的解决方案,以搜索、分析和可视化数据。 它由Elasticsearch、Logstash和Kibana组成。

若要识别关键详细信息,请使用AEMCS-CDN-Log-Analysis-Tooling项目。 此项目提供了ELK栈栈的Docker容器和预配置的Kibana仪表板来分析CDN日志。

  1. 按照如何设置ELK Docker容器中的步骤操作,并确保导入​ CDN缓存命中率 Kibana仪表板。

  2. 要识别CDN缓存命中率和顶级URL,请执行以下步骤:

    1. 将下载的CDN日志文件复制到特定于环境的日志文件夹中,例如ELK/logs/stage

    2. 单击左上角的​ 导航菜单> Analytics >功能板> CDN缓存命中率,打开​ CDN缓存命中率 ​功能板。

      CDN缓存命中率 — Kibana仪表板 {width="500" modal="regular"}

    3. 从右上角选择所需的时间范围。

      时间范围 — Kibana仪表板 {width="500" modal="regular"}

    4. CDN缓存命中率 ​仪表板不言自明。

    5. 请求分析总数 ​部分显示以下详细信息:

      • 按高速缓存类型列出的高速缓存比率
      • 按缓存类型列出的缓存计数

      请求分析总数 — Kibana仪表板 {width="500" modal="regular"}

    6. 按请求或Mime类型分析 ​显示以下详细信息:

      • 按高速缓存类型列出的高速缓存比率
      • 按缓存类型列出的缓存计数
      • 主要缺失和通过URL

      按请求或Mime类型分析 — Kibana仪表板 {width="500" modal="regular"}

按环境名称或项目ID筛选

要按环境名称筛选摄取的日志,请执行以下步骤:

  1. 在CDN缓存命中率仪表板中,单击​ 添加过滤器 ​图标。

    筛选器 — Kibana仪表板 {width="500" modal="regular"}

  2. 在​ 添加筛选器 ​模式中,从下拉菜单中选择aem_env_name.keyword字段,并为下一个字段选择is运算符和所需的环境名称,最后单击​ 添加筛选器

    添加筛选器 — Kibana仪表板 {width="500" modal="regular"}

按主机名筛选

要按主机名过滤摄取的日志,请执行以下步骤:

  1. 在CDN缓存命中率仪表板中,单击​ 添加过滤器 ​图标。

    筛选器 — Kibana仪表板 {width="500" modal="regular"}

  2. 在​ 添加筛选器 ​模式中,从下拉菜单中选择host.keyword字段,并为下一个字段选择is运算符和所需的主机名,最后单击​ 添加筛选器

    主机筛选器 — Kibana仪表板 {width="500" modal="regular"}

同样,根据分析要求向功能板添加更多过滤器。

选项2:使用Splunk操控板工具

Splunk是一种常用的日志分析工具,可帮助汇总、分析日志和创建可视化图表以进行监控和故障排除。

若要识别关键详细信息,请使用AEMCS-CDN-Log-Analysis-Tooling项目。 此项目提供了一个Splunk功能板来分析CDN日志。

  1. 按照用于AEMCS CDN日志分析的Splunk仪表板中的步骤操作,并确保导入​ CDN缓存命中率 Splunk仪表板。

  2. 如果需要,请在Splunk功能板中更新​ Index、Source Type和其他 ​筛选器值。

    Splunk仪表板 {width="500" modal="regular"}

NOTE
splunk操控板中的UI和图形与ELK操控板不同,但关键细节是相似的。

选项3:使用Jupyter Notebook

对于那些不愿意在本地安装软件的用户(即上一节中的ELK功能板工具),还有一个选项,但需要拥有Adobe Experience Platform的许可证。

Jupyter Notebook是一个开源Web应用程序,它允许您创建包含代码、文本和可视化图表的文档。 它用于数据转换、可视化和统计建模。 它可以作为Adobe Experience Platform🔗的一部分被远程访问。

下载交互式Python笔记本文件

首先,下载AEM-as-a-CloudService - CDN日志分析 — Jupyter Notebook文件,该文件将有助于进行CDN日志分析。 这个“交互式Python笔记本”文件不言自明,但每个部分的关键亮点包括:

  • 安装其他库:安装termcolortabulate Python库。
  • 加载CDN日志:使用log_file变量值加载CDN日志文件;请确保更新其值。 它还会将此CDN日志转换为Pandas DataFrame
  • 执行分析:第一个代码块是​ 显示总计、HTML、JS/CSS和图像请求的分析结果;它提供缓存命中率百分比、条形图和饼图。
    第二个代码块是_HTML、JS/CSS和图像的前5个未命中和传递请求URL_;它以表格格式显示URL及其计数。

运行Jupyter Notebook

接下来,在Adobe Experience Platform中运行Jupyter Notebook,请执行以下步骤:

  1. 登录到Adobe Experience Cloud,在主页> 快速访问 ​部分中>单击​ Experience Platform

    Experience Platform {width="500" modal="regular"}

  2. 在Adobe Experience Platform主页>数据科学部分>中,单击​ Notebooks ​菜单项。 要启动Jupyter Notebooks环境,请单击​ JupyterLab ​选项卡。

    笔记本日志文件值更新 {width="500" modal="regular"}

  3. 在JupyterLab菜单中,使用​ 上载文件 ​图标,上载下载的CDN日志文件和aemcs_cdn_logs_analysis.ipynb文件。

    上载文件 — JupyteLab {width="500" modal="regular"}

  4. 通过双击打开aemcs_cdn_logs_analysis.ipynb文件。

  5. 在笔记本的​ 加载CDN日志文件 ​部分中,更新log_file值。

    笔记本日志文件值更新 {width="500" modal="regular"}

  6. 要运行选定的单元格并前进,请单击​ 播放 ​图标。

    笔记本日志文件值更新 {width="500" modal="regular"}

  7. 运行​ 显示总计、HTML、JS/CSS和图像请求的分析结果 ​代码单元格后,输出将显示缓存命中率百分比、条形图和饼图。

    笔记本日志文件值更新 {width="500" modal="regular"}

  8. 运行HTML、JS/CSS和图像​ 代码单元格的 ​前5个未命中和传递请求URL后,输出显示前5个未命中和传递请求URL。

    笔记本日志文件值更新 {width="500" modal="regular"}

您可以增强Jupyter Notebook以根据您的要求分析CDN日志。

优化CDN缓存配置

在分析CDN日志后,您可以优化CDN缓存配置以提高站点性能。 AEM最佳实践是使缓存命中率达到90%或更高。

有关详细信息,请参阅优化CDN缓存配置

AEM WKND项目具有引用CDN配置,有关详细信息,请参阅wknd.vhost文件中的CDN配置

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69