输出缓存和缓存配置文件

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

本文内容
输出缓存的优点和缺点
缓存配置文件
过程

Microsoft SharePoint Server 2010 使用 ASP.NET 自带的输出缓存技术来管理何时及如何提供页面内容。ASP.NET 输出缓存是 SharePoint Server 2010 缓存功能的基础;因此,SharePoint Server 2010 中的输出缓存与 ASP.NET 中的输出缓存技术的行为类似。

对于访问量极大的 SharePoint Server 2010 网站而言,即便将频繁访问的页面每分钟缓存一次,也会导致吞吐量大幅增加。而采用输出缓存来缓存页面时,便会通过输出页面来响应对该页面的后续请求,而无需按照所指定的缓存持续时间来执行为该页面而创建的代码。

输出缓存的优点和缺点

在选择使用输出缓存来提高页面呈现性能和改善页面项呈现效果之前,请先考虑实现潜在的输出缓存的优缺点。本文档未列出所有考虑事项,以下是一些可能需要考虑的优点:

  • 每个相同级别的内容(如页面或页面中的项目)在最初呈现后,可更快接收到响应,因此滞后时间较短。

  • 每个服务器在初始呈现后将占用较少的 CPU 时间和能耗来响应同一页面。

  • 由于输出缓存可减少通信流,因此所呈现页面的每个数据源都可以扩展以响应更多 Web 客户端。

  • 对于已为其提供了输出缓存版页面的每个页面请求,服务器无需执行以下操作:

    • 往返数据库以获取 .aspx 页及该页面上任何 .ascx 控件的源代码。

    • 重新加载并重新呈现控件。

    • 再次查询控件依赖的数据源以获取数据。

但在决定实现输出缓存之前,您可能要考虑以下事项:

  • 输出缓存会占用额外的内存。每个版本的页面都占用 Web 客户端上的内存。

  • 当用于两台或多台前端 Web 服务器时,输出缓存可能会影响一致性。您可以将缓存配置文件配置为不检查每个请求的更新,例如,指示它在原始网页更新后 60 秒内,都忽略对输出缓存中的网页版本的更改。若您的拓扑中有两台前端 Web 服务器,则根据用来传送用户请求的负载平衡器,如果在一台服务器呈现页面后,于 60 秒内将一个后续请求传送到第二台服务器,则网站内容的读取器可能会看到不一致现象。

缓存配置文件

SharePoint Server 2010 添加一种比 ASP.NET 2.0 自带的机制更为精确的自定义输出缓存机制。SharePoint Server 2010 包含缓存配置文件,即列表样式的缓存设置,您可以在网站部署中命名这些设置并应用于页面、页面项、内容类型和缩放比例。

通过使用缓存配置文件,您可以控制应用于输出缓存的粒度大小;允许或禁止网站所有者和管理员选择自己的缓存配置文件并将它们灵活应用于页面布局;以及网站集级别、网站级别和页面布局级别的目标输出缓存。

您可以根据用户对网站的访问权限来组织缓存行为。例如,您可能定义了三组缓存行为,他们分别具有完全控制、读取和写入权限,以及只读权限。对于具有相同权限的用户,输出缓存将以同一方式呈现页面,因此您可以使用缓存配置文件将缓存定位于特定访问群体。在 SharePoint Server 2010 默认提供的缓存配置文件中,缓存系统对每个用户访问权限组呈现一次页面,然后缓存生成的 HTML 流。下一个具有相同访问权限的用户将从缓存中获取流。

创建并部署缓存配置文件后,缓存配置文件的任何更改都会立即影响网站上的所有适用内容。例如,如果给定网站集中的所有文档库页面布局最初是缓存 60 秒,并且您将持续时间增加为 120 秒,无论文档库页面布局或网站集中的网站数量是多少,该网站集中的每个文档库页面布局都将缓存 120 秒。

您可以通过使用存储在标准 SharePoint Server 2010 列表中的缓存配置文件来定义缓存配置文件,并通过 VaryByCustom 处理程序以编程方式进行扩展。如果您通过用户界面将缓存配置文件应用于网站和页面布局,低级别传播将强制子网站保持一致。缓存策略独立于其他 SharePoint Server 2010 功能而单独受到保护。

备注

若要了解以这种方式创建缓存配置文件的详细信息,请参阅如何:使用 VaryByCustom 事件处理程序扩展缓存。其中描述了如何创建 VaryByCustom 事件处理程序,如何修改缓存配置文件以加入传递给 VaryByCustom 的自定义字符串参数,以及如何向 global.asax 文件添加所需代码。

过程

为网站集启用输出缓存

  1. 导航到网站集的根网站。在"网站操作"菜单上,单击"网站设置"。

  2. 在"网站集管理"部分,选择"网站集输出缓存"。

  3. 若要启用此网站集的输出缓存,请选择"启用输出缓存"。

  4. 从"匿名缓存配置文件"列表选择匿名用户的缓存配置文件。匿名用户在访问此网站集中的网站时将应用此配置文件。

  5. 从"匿名缓存配置文件"列表选择通过身份验证的用户的缓存配置文件。当通过身份验证的用户访问此网站集中某个网站时,将应用该配置文件。

  6. 选择"页面输出缓存策略"选项:

    • 如果发布网站可以使用其他输出缓存配置文件,请选择"发布网站时,可以使用其他页面输出缓存配置文件"。

    • 如果页面布局可以使用其他输出缓存配置文件,选择"各个页面布局可以使用不同的页面输出缓存配置文件"。

  7. 如果您要在此网站集中的页面上显示其他缓存信息,包括该页面内容上一次呈现的日期和时间,请选择"对页面启用调试缓存信息"。

  8. 单击"确定"。

为网站启用输出缓存

  1. 导航到网站集的根网站。在"网站操作"菜单上,单击"网站设置"。

  2. 在"网站管理"部分,选择"网站输出缓存"。

  3. 选择"匿名缓存配置文件"选项:

    • 如果要继承缓存配置文件,请单击"继承"。

    • 如果要从当前可用的缓存配置文件中进行选择,请选择"选择页面输出缓存配置文件"。

  4. 如果要将这些设置应用于此根网站的所有子网站,请选择"将这些设置应用于所有子网站"。

  5. 单击"确定"。

创建新的缓存配置文件

  1. 导航到网站集的根网站。在"网站操作"菜单上,单击"网站设置"。

  2. 在"网站集管理"部分,选择"网站集缓存配置文件"。

  3. 单击"新建"。

  4. 定义并创建新的缓存配置文件。

    表 1. 缓存配置文件详细说明

    详细信息

    说明

    标题

    必需。此缓存配置文件的系统名称。

    显示名称

    填充网站所有者和页面布局所有者的可用缓存配置文件的列表。

    显示说明

    填充网站所有者和页面布局所有者的可用缓存配置文件的列表。

    执行 ACL 检查

    选择此项将确保缓存中的所有项目都经过安全修整。

    已启用

    若希望进行缓存,可选择此项。

    持续时间

    保留缓存版本的秒数。

    检查更改

    选择此项将验证每个页面请求的网站均未更改,并在网站更改时刷新缓存。

    若希望获得更好的性能,可清除此选项。若未选中此项,系统将不会按"持续时间"中指定的秒数来检查网站更新。

    随自定义参数变化

    按 ASP.NET HttpCachePolicy.SetVaryByCustom 方法文档中的描述指定一个值。

    随 HTTP 头变化

    按 ASP.NET HttpCachePolicy.VaryByHeaders 属性文档中的描述指定一个值。

    随查询字符串参数变化

    按 ASP.NET HttpCachePolicy.VaryByParams 属性文档中的描述指定一个值。

    随用户权限变化

    选择此项以确保用户必须对所有 SharePoint 安全作用域具有相同的有效权限才能与其他任何用户一样查看缓存页面。

    可缓存性

    从下拉列表中选择一个值。可选值包括 NoCache、Private、Server、ServerAndNoCache、Public 和 ServerAndPrivate。若要了解详细信息,请参阅 ASP.NET HttpCacheability 枚举主题。

    经过验证后可安全使用

    只对您要允许管理员和页面布局设计人员应用于通过身份验证的场景的策略选择此项。

    允许作者查看缓存的内容

    选择此项以跳过不授予用户缓存页面编辑权限的默认行为。

请参阅

概念

自定义缓存概述

对象缓存

二进制大对象的基于磁盘的缓存

其他资源

ASP.NET Page Output Caching, Part 1