在 SharePoint Server 2016 中监控缓存性能

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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

关于缓存监视

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

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

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

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

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

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

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

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

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

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

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

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

监视 BLOB 缓存性能

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

SharePoint Disk-Based 缓存计数器组

计数器名称 理想值或模式 注释
Total Number of cache Compactions
0
如果此数持续频繁走高,则表示对请求数据而言,缓存大小过小。 若要提高性能,请增加缓存大小。
BLOB 缓存填充比率
>= 90%,显示红色
>= 80%,显示黄色
<80%,显示绿色
这表示缓存大小过小。 若要提高性能,请增加缓存大小。

SharePoint 发布缓存计数器组

计数器名称 理想值或模式 注意
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 输出缓存的详细信息,请参阅 输出缓存和缓存配置文件缓存元素用于缓存 (ASP.NET 设置架构)

监视对象缓存性能

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

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

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

SharePoint 发布缓存计数器组

计数器名称 理想值或模式 注释
Total number of cache compactions
0
如果此数较高,则表示对请求的数据而言,缓存大小过小。 若要提高性能,请增加缓存大小。
Publishing cache flushes / second
0
网站所有者可能在对网站执行导致缓存刷新的操作。 若要在高峰使用时段提高性能,请确保网站所有者仅在非高峰时段执行这些操作。
Publishing cache hit ratio
取决于使用模式。 对于只读网站,此比率应为 1。 对于读写网站,此比率可能更低。
如果此比率开始降低,则可能是由于下列一种或多种情况造成的:
最近刷新或压缩过缓存。
用户正在访问新添加到网站中的内容。 此情况可能发生在向网站添加大量新内容后。