【问题标题】:How to tune Sitecore prefetch caches如何调整 Sitecore 预取缓存
【发布时间】:2023-03-09 15:50:02
【问题描述】:

使用 sitecore 预取缓存的最佳方法是什么?给定具有本地 SQL Server、8gb 内存和 2,000 个内容项的独立 Sitecore 服务器,我是否应该在假设批量加载项更有效的情况下预先预取大量网站内容?为了更清晰的场景,假设预取所有 2000 个项目将占用 /sitecore/admin/cache.aspx 报告的 2gb

此外,配置的预取缓存大小与所需大小相关是否也会影响性能,即如果设置为比所需大小大 3 倍,与设置为所需大小的 1.1 倍相比,这是否会导致性能下降?

【问题讨论】:

    标签: performance caching sitecore load-testing


    【解决方案1】:

    预取有点像灰色地带。如果您预取大量内容,则每次重新启动应用程序将花费更长的时间,因为它会填充预取。如果您的预取很少,应用程序重新启动会很快,但您从中获得的优势很小。你应该在它们之间找到一个平衡点。

    我建议您预取主页所需的任何内容,例如主页项目及其直接子项(可能用于主导航)。此外,如果主页上使用了其他数据项并且您知道它们总是在那里使用,您也可以预取它们。我将从基础开始,然后慢慢添加,看看它如何影响性能和应用重启。

    至于预取的大小,它只是定义了最大大小。因此,如果您将其设置为标准大小的 3 倍,这意味着您可能会在预取中获得多达 3 倍的数据,但这并不能保证您会这样做。但无论如何,预取的次数越多,应用重启的速度就越慢。

    我强烈建议您观看 Sitecore Caching Technical Deep Dive 网络研讨会以了解预取。关于预取的内容只有几分钟,但它是一个非常好的视频。 It's available on the SPN(不是SDN)

    【讨论】:

    • 嗨,关于大小的问题,我很好奇设置缓存大小对预取范围内适用数据量的影响。因此,如果设置 10gb 限制会导致 2gb(即配置的预取标准范围内的所有内容),那么将缓存大小设置为足够大 - 2.1Gb 会产生什么影响(这更好吗?还是与更大的限制?)或小于要求的 - 1Gb(这会导致缓存“流失”)
    • 说你的预取说得到home的所有子项。如果随着时间的推移添加更多home 的子项,预取可能会从 2.0 Gb 增长到 2.1、2.2 或 2.3 等。这与您的配置方式有关。我建议您观看我引用的视频,并根据您的具体配置对内容如何随时间变化以及它如何影响预取做出判断。如果您有主页项目,并且可能只有几个子项目作为网站的主要部分,并且随着时间的推移,您实际上只添加了这些子页面,那么它可能是一致的预取。
    【解决方案2】:

    Some new information has come to light recently regarding the prefetch cache. 简而言之,不要将其设置得太小。它是 Sitecore 最重要的缓存。项目不仅在启动时添加到预取缓存中,相反,它们会在整个应用程序生命周期中添加。

    不要将预取行为与预取缓存本身混淆。在链接的博客文章中,我认为它应该被称为“项目引导”而不是预取,以免将其与同名缓存混淆。预取项目确实会将其添加到预取缓存中,仅此而已。使用 SQL 进行的任何其他操作也会影响预取缓存(读取项目、创建项目等...包括那些未在配置中列出的)。

    正如 Mark 的回答所说 - 是的,预取您最有影响力的项目。但是,请根据应用程序统计信息调整预取缓存的大小。检查您的 <data folder>\diagnostics\health_monitor\CacheStatus.<date>.html 文件以确保您没有超过最大大小,然后给自己一个缓冲区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多