将对象缓存与 SharePoint 配合使用

本文介绍在本地 SharePoint Server 2013 中使用对象缓存与 Microsoft 365 中的 SharePoint 之间的区别。

在 SharePoint 部署中依赖对象缓存会产生显著的负面影响。 SharePoint 中对对象缓存的任何依赖都会降低页面的可靠性。

Microsoft 365 和 SharePoint Server 2013 对象缓存中的 SharePoint 的工作原理

当 SharePoint Server 2013 托管在本地时,客户具有托管对象缓存的专用前端 Web 服务器。 这意味着缓存专用于一个客户,并且仅受可用和分配给对象缓存的内存量的限制。 由于在本地方案中只为一个客户提供服务,因此前端 Web 服务器通常让用户一遍又一遍地向同一站点发出请求。 这意味着缓存会很快变满,并保留满满用户定期请求的列表查询结果和 SharePoint 对象。

显示流向本地前端 Web 服务器的流量和负载。

因此,用户第二次访问页面时,页面加载时间会缩短。 至少加载同一页四次后,该页将缓存在所有前端 Web 服务器上。

相比之下,在 Microsoft 365 的 SharePoint 中,有更多的服务器,但网站也更多。 每个用户都可以连接到未填充缓存的其他前端 Web 服务器。 或者,缓存可能已为服务器填充,但该前端 Web 服务器的下一个用户从其他站点请求页面。 或者,即使下一个用户请求与其上一次访问时相同的页面,也会将其负载均衡到缓存中没有该页面的其他前端 Web 服务器。 在最后一种情况下,缓存对用户没有任何帮助。

在下图中,每个点表示用户正在请求的页面及其缓存位置。 不同的颜色表示共享使用 SaaS 基础结构的不同客户。

显示 SharePoint 中对象缓存的结果。

如图所示,任何给定用户使用其页面的缓存版本访问服务器的可能性很小。 此外,由于吞吐量较大,并且服务器在许多站点之间共享,因此缓存不会持续很长时间,因为只有这么多空间可用于缓存。

出于所有这些原因,依赖用户获取缓存对象并不是确保 SharePoint 中的高质量用户体验和页面加载时间的有效方法。

如果不能依赖对象缓存来提高 SharePoint 中的性能,我们应改用什么?

由于不应依赖 SharePoint 中的缓存,因此应评估使用对象缓存的 SharePoint 自定义项的替代设计方法。 这意味着使用性能问题的方法,这些方法不依赖于对象缓存,以便为用户提供良好的结果。 本系列的其他一些文章对此进行了介绍,包括: