在 SharePoint Server 2016 中监控缓存性能

 

**上一次修改主题:**2018-03-12

**摘要:**了解如何监视 SharePoint BLOB 缓存、ASP.NET 输出缓存和 SharePoint 对象缓存。

通过监视缓存性能,您可以确保场缓存设置正确,并且该缓存在最佳性能下运行。

关于缓存监视

SharePoint Server 2016 提供了以下三种类型的缓存,可帮助加快网页在浏览器中加载的速度:BLOB 缓存、ASP.NET 输出缓存和对象缓存。

  • BLOB 缓存是基于磁盘的缓存,可存储网页所使用的二进制大型对象文件,以帮助网页在浏览器中快速加载。

  • ASP.NET 输出缓存可存储呈现的页面输出。它还可根据请求页面的用户的权限存储不同版本的缓存页面。

  • 对象缓存可减少 Web 服务器和 SQL 数据库之间的通信量,方法是在前端 Web 服务器的内存中存储列表和库、网站设置以及页面布局之类的对象。因此,需要这些项目的页面能够快速呈现,从而提高了向客户端浏览器提供页面的速度。

监视包含定期查看特定性能监视器和进行设置调整,以更正所有性能问题。这些监视器可测定缓存命中、缓存未命中、缓存压缩和缓存刷新数据。以下列表介绍其中各个性能监视器。

  • 缓存命中 当缓存收到其数据已存储在此缓存中的对象的请求时,发生此事件。缓存命中数高表示性能良好,最终用户体验良好。

  • 缓存未命中 当缓存收到其数据未存储在此缓存中的对象的请求时,发生此事件。缓存未命中数高可能表示性能不佳,最终用户体验不佳。

  • 缓存压缩(又称为修剪),当缓存已满的情况下又收到未缓存内容的请求时,发生此事件。在压缩过程中,系统会确定缓存中要移除的内容子集,并移除它们。通常,这些内容是不常请求的内容。

    压缩会消耗服务器大部分资源。这样会影响服务器性能和最终用户体验。因此,应避免压缩。您可以通过增加缓存大小来减少压缩的几率。如果缩减缓存大小,通常会发生压缩情况。对象缓存压缩消耗的资源不会像 BLOB 缓存压缩那么多。

  • 缓存刷新 当缓存完全清空时,发生此事件。在缓存刷新后,缓存命中和缓存未命中的比率几乎为零。之后随着用户请求内容,缓存被填满,此比率增大,最终达到最佳级别。此计数器计数一直走高可能表示服务器场有问题,例如不断更改库元数据架构。

您可以通过监视缓存设置的有效性来确保最终用户尽可能获得最佳体验。当缓存命中和缓存未命中的比率高,且很少执行压缩和刷新操作时,可获得最佳性能。如果监视器未显示这些情况,则可通过更改缓存设置来提高性能。

以下各节提供有关监视各种缓存的特定信息。

监视 BLOB 缓存性能

您可以使用下表列出的性能监视器监视缓存设置的有效性。

SharePoint 发布缓存计数器组

计数器名称 理想值或模式 注释

Total Number of cache Compactions

0

如果此数持续频繁走高,则表示对请求数据而言,缓存大小过小。若要提高性能,请增加缓存大小。

BLOB Cache % full

>= 90%,显示红色

>= 80%,显示黄色

<80%,显示绿色

这表示缓存大小过小。若要提高性能,请增加缓存大小。

Publishing cache flushes / second

0

网站所有者可能在对网站执行导致缓存刷新的操作。若要在高峰使用时段提高性能,请确保网站所有者仅在非高峰时段执行这些操作。

Publishing cache hit ratio

取决于使用模式。对于只读网站,此比率应为 1。对于读写网站,此比率可能更低。

低比率表示正在请求未发布的项目,这些项目无法进行缓存。如果是门户网站,则表示可能将此网站设置为需要签出,或者有许多用户签出项目。

备注

对于 BLOB 缓存,仅当用户请求的是扩展名经配置要缓存的文件时,才将此请求计为缓存未命中。例如,如果仅对缓存 .jpg 文件启用缓存,而缓存收到 .gif 文件的请求,则该请求不会被计为缓存未命中。

监视 ASP.NET 输出缓存性能

您可以使用下表列出的性能监视器监视缓存设置的有效性。

ASP.NET 应用程序计数器组

计数器名称 理想值或模式 注释

Cache API trims

0

增加分配给 ASP.NET 输出缓存的内存量。

Cache API hit ratio

取决于使用模式。对于只读网站,此比率应为 1。对于读写网站,此比率可能更低。

命中率低的可能原因包括:

  • 如果使用的是匿名用户缓存(例如,对于面向 Internet 的网站),用户定期请求尚未缓存的内容。

  • 如果使用的是经过身份验证的用户的 ASP.NET 输出缓存,许多用户可能在所查看的页面上具有编辑权限。

  • 如果在任何页面(或母版页/页面布局)上自定义任何 VaryBy* 参数,或自定义缓存配置文件,可能配置阻止网站页面有效缓存的参数(例如,拥有大量用户的网站的用户可能在变更相关内容)。

备注

对于 ASP.NET 输出缓存,会将所有页面缓存一个不受用户操作影响的固定时段。因此,会发生与刷新相关的监视事件。

有关 ASP.NET 输出缓存的详细信息,请参阅输出缓存和缓存配置文件 (https://go.microsoft.com/fwlink/p/?LinkID=121543) 或 caching 的 cache 元素(ASP.NET 设置架构) (https://go.microsoft.com/fwlink/p/?LinkId=195986)。

监视对象缓存性能

对象缓存用于存储网站导航和内容查询 Web 部件等功能使用的网站、库、列表、列表项和文档的相关元数据。此缓存可在用户浏览使用这些功能的页面时提供帮助,因为他们可直接从对象缓存而非内容数据库中存储或检索需要的数据。

对象缓存存储在服务器场每台 Web 服务器的 RAM 中。每台 Web 服务器均维护其自己的对象缓存。

您可以使用下表列出的性能监视器监视缓存设置的有效性。

SharePoint 发布缓存计数器组

计数器名称 理想值或模式 注释

Total number of cache compactions

0

如果此数较高,则表示对请求的数据而言,缓存大小过小。若要提高性能,请增加缓存大小。

Publishing cache flushes / second

0

网站所有者可能在对网站执行导致缓存刷新的操作。若要在高峰使用时段提高性能,请确保网站所有者仅在非高峰时段执行这些操作。

Publishing cache hit ratio

取决于使用模式。对于只读网站,此比率应为 1。对于读写网站,此比率可能更低。

如果此比率开始降低,则可能是由于下列一种或多种情况造成的:

  • 最近刷新或压缩过缓存。

  • 用户正在访问新添加到网站中的内容。此情况可能发生在向网站添加大量新内容后。