缓存失效导致响应时间降低

本文就如何避免可能会导致Adobe Commerce存储性能降低的缓存失效提供了解决方案。

受影响的产品和版本:

  • Adobe Commerce内部部署2.2.x、2.3.x
  • 云基础架构上的Adobe Commerce 2.2.x、2.3.x

问题

站点响应缓慢。

原因

缓存失效(刷新)可能导致响应时间过长。

缓存用于生成对网站访客请求的快速响应。 如果没有相应的缓存数据可用,Adobe Commerce应用程序将从数据库中提取数据,计算并聚合数据,然后将其存储在缓存中。 缓存生成过程需要额外的系统资源,从而导致总响应时间下降。

Adobe Commerce中有两种类型的缓存:

  1. 内部:

    • 将数据存储在服务器上
    • 存储特定数据(配置、产品详细信息、类别详细信息等)
  2. 外部:

    • CDN或Varnish(如果是Adobe Commerce on cloud infrastructure - Fastly CDN)
    • 存储已生成完整页面。 例如,目录/类别、目录/产品页面等。

检查您是否具有失效的缓存

您可以在<install_directory>/var/log/debug.log文件中找到有关失效缓存类型的信息。

为此,请执行以下操作:

  1. 打开<install_directory>/var/log/debug.log

  2. 搜索“cache_invalidate”消息。

  3. 然后检查指定的标记。 它指示刷新了哪些缓存。 如果您看到未指定特定实体ID的标记,则可能会因缓存失效而出现问题,例如:

    • cat_p — 代表目录产品缓存。
    • cat_c — 目录类别缓存。
    • FPC — 整页缓存。
    • CONFIG — 配置缓存。

    即使其中一人刷新了数据,也会减慢网站响应速度。 如果标记包含实体ID,例如category_product_1258,这将指示特定产品或类别的缓存,依此类推。 刷新特定产品或类别的缓存不会导致响应时间显着下降。

以下是包含有关已刷新cat_pcategory_product_15044缓存的记录的debug.log的示例:

debug.log内容的 示例

通常,缓存会由于以下原因失效:

  • 完全重新索引。
  • 手动或使用cron从CLI刷新缓存。

推荐

  1. 避免从Commerce CLI刷新缓存。
  2. 将索引器配置为​ 按计划 ​更新,而不是​ 在保存模式下更新,因为后者触发完全重新索引。 有关参考,请参阅我们的开发人员文档中的管理索引器>配置索引器
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a