Azure 角色中缓存容量规划注意事项

重要

Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪个 Azure 缓存产品/服务适合我?

In-Role缓存缓存的所需容量由几个因素决定,包括要放置在缓存中的数据量、缓存中读取和写入的频率和写入量,以及为缓存指定了哪些选项(如高可用性)。 确定了缓存需求后,可配置缓存拓扑。 设置的缓存群集的拓扑取决于几个因素,包括虚拟机大小、部署的实例数,以及角色是共享角色还是专用于缓存的角色。 本主题演示如何使用 容量规划指南电子表格 来确定缓存所需的容量,以及用于配置以预配缓存群集以满足要求的设置。

使用容量规划指南电子表格

容量规划指南电子表格是从 Microsoft 下载中心下载的电子表格,包含两个工作表,可用于协助容量规划:专用角色 - Planner共同定位角色 - Planner专用角色 – Planner 提供有关创建 专用角色 缓存群集和 共同定位角色的指导 - Planner 提供有关创建 共同定位角色 缓存群集的指导。

缓存群集部署拓扑 说明

专用角色缓存

辅助角色实例专门用于缓存。

共存角色缓存

缓存与角色所托管的主要应用程序共享 VM 资源(带宽、CPU 和内存)。

如果应用程序在其现有角色中有未利用的内存,则可在这些角色上配置共存角色缓存群集,并将该额外内存用于缓存。 如果角色中没有足够的额外内存来支持缓存群集,则既可向外扩展角色,也可添加缓存辅助角色并配置专用角色缓存群集。 此指南可帮助你确定满足应用程序缓存需求的部署拓扑所要使用的设置。

以下部分介绍如何使用这两个工作表来规划 专用角色共同定位角色 缓存的容量。

  • 专用角色 - 计划程序

  • 并置角色 - 计划程序

专用角色 - 计划程序

专用角色 – Planner 工作表是容量规划指南电子表格中的第一个工作表,用于帮助确定专用角色缓存群集的设置。 专用角色缓存群集是一个其中的辅助角色实例专门用于缓存的缓存群集。

Dedicated Cache Capacity Planner

专用角色 – Planner 工作表采用多种输入类型。 第一部分 输入:数据要求用于计算缓存数据的最大大小。 你最多可以为十种数据类型输入“平均对象大小(序列化后)”、“最大对象数”“是否支持高可用性”。 在前一个示例中,有一种数据类型已建模。 平均大小为 2,560 字节,缓存中对象的最大数目为 100,000。 未启用高可用性。

第二部分 输入:吞吐量要求用于计算缓存的带宽要求,并在峰值负载时输入 读取数/秒写入数/秒 。 在此示例中,数据类型 1 的峰值负载是每秒 10,000 读取次数和每秒 500 写入次数。

第三部分 “输入:高级选项”提供了多个其他输入设置。 “峰值负载缓冲 - 数据”和“峰值负载缓冲 - 吞吐量”为应用程序负载中的浪涌提供缓冲区。 这些设置可让你方便地针对缓存中的数据量与数据吞吐量增加或减少所需缓冲区。

“在每次 Azure 更新时保留数据”表示当升级域中的角色由于更新而关闭时,容量规划器电子表格是否应包含滚动升级方案的额外容量。 当 Azure 由于更新关闭升级域中的角色时,In-Role缓存尝试在节点脱机之前将数据移到群集中的其他节点。 如果其他节点中的容量不足,因而无法接管额外的负载,则角色中所有已缓存的项将无法传输到其他节点。 默认情况下,“在每次 Azure 更新时保留数据”在容量规划器电子表格中设置为“是”。 如果设置为“否”,则会降低角色的容量需求。 当 “跨 Azure 更新保留数据 ”设置为 “是”时,本指南会保留相当于一个容量升级域的额外容量。 有关升级域的详细信息,请参阅 更新 Azure 服务概述

注意

如果节点因故障而关闭,或者由于由于配置更改而减少的角色实例数,则缓存数据不会移动到其他节点。 In-Role缓存仅在计划关闭时将数据移到其他节点。 可以启用高可用性,以便在发生节点故障时提供缓存数据的备份副本。 有关详细信息,请参阅 Azure In-Role 缓存中的高可用性

“升级域计数”表示托管缓存群集的角色的升级域数。 你可以让容量规划器电子表格为缓存群集推荐升级域计数,也可以自行指定。 默认设置为“由规划器设置”。 选择“按规划器设置”时,容量规划电子表格在“输出:可能的配置”部分的“升级域”列中提供建议。 在 升级域计数中手动指定升级域计数时,指定的计数将显示在“ 输出 ”部分中。 有关升级域的详细信息,请参阅 更新 Azure 服务概述

配置输入后,该工具在 “输出:可能的配置” 部分中提供建议。 在此示例中,建议的配置是具有 3 个角色实例的中型 VM 大小,升级域计数为 3。 除了建议的配置之外,“ 输出:可能的配置 ”部分还显示了选择其他某个 VM 大小时所需的设置。

如果缓存中对象的平均大小小于 2k,容量规划器指南将在“输出”部分的下面显示“缓存数据大小(MB)*”列和注释。

Dedicated Cache Capacity Planner Cache Settings

注意

“输出”部分下面显示的链接指向你当前正在阅读的“容量规划注意事项”主题。

如果显示此消息,请通过执行以下步骤,在角色项目中创建一个名为 CacheSettings.xml 的 XML 文件,并添加一个 dataCache 部分,其中包含来自“输出”部分的“缓存数据大小(MB)”设置。

  1. 在“解决方案资源管理器”中右键单击托管缓存群集的角色项目,然后选择“添加”>“新建项”。 从“模板”窗格中选择“XML 文件”,在“名称”框中键入“CacheSettings.xml”,然后单击“添加”

  2. 复制下面的 XML 代码段并将它粘贴到 CacheSettings.xml 文件中。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="dataCache" type="Microsoft.ApplicationServer.Caching.DataCacheSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
      </configSections>
      <dataCache size="Small">
        <advancedProperties>
          <memoryPressureMonitor cacheUserDataSizePerNode="[CacheDataSize (MB) Setting]" />
        </advancedProperties>
      </dataCache>
    </configuration>
    

    [CacheDataSize (MB) Setting] 替换为对应于你的 VM 大小的“缓存数据大小(MB)”列中的设置。 在以下示例中,使用了 2088

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="dataCache" type="Microsoft.ApplicationServer.Caching.DataCacheSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
      </configSections>
      <dataCache size="Small">
        <advancedProperties>
          <memoryPressureMonitor cacheUserDataSizePerNode="2088" />
        </advancedProperties>
      </dataCache>
    </configuration>
    

    重要

    请勿修改此代码片段中的其他任何设置,例如 dataCachesize 属性。 该 dataCachesize 属性未指定用于缓存群集的 VM 角色的大小,并且必须设置为 Small

    此 CacheCluster.xml 文件将与你的应用程序一起部署,并包含所需的配置。

若要使用“专用角色 - 计划者”工作表,请在“输入”部分输入符合你的缓存需求的值。 使用建议的方案作为配置缓存群集的起点。 若要配置专用角色缓存,请向项目中添加“缓存辅助角色”并配置缓存群集属性。 有关配置专用角色缓存群集的示例,请参阅 如何:为 Azure In-Role缓存配置缓存群集

并置角色 - 计划程序

共同定位角色 – Planner 工作表是容量规划指南电子表格中的第二个工作表,用于帮助确定共同定位角色缓存群集的设置。 共存角色缓存群集是一个其中的角色实例的资源(内存、CPU 和带宽)在缓存和应用程序之间共享的缓存群集。

Co-Located Cache Capacity Planner

若要使用 共同定位角色 – Planner 工作表,请在 “输入:群集配置 ”部分中输入角色的配置。 在“VM 大小”中,输入托管你的角色的 VM 大小,并在“VM 实例数”中输入角色实例数。 将所需的缓存大小输入到“要在缓存中存储的用户数据”中,并为“是否启用高可用性”指定所需的设置。 如果要启用高可用性,请输入 “是 ”,否则为 “否 ”。 在此示例中,VM 大小为中等并包含 3 个角色实例,所需的缓存大小为 1,500 MB,未启用高可用性。

配置了输入后,该工具将提供在现有角色实例上托管所需缓存群集的可行性建议,并提供用于角色属性“Caching”选项卡上的“缓存大小”滑块的设置建议。 这些内容位于“输出:可行性&设置”部分。 在本示例中,“缓存大小(%)”设置将设置为 30%,其余由操作系统和其他处理使用。 如果所需的缓存大小对于当前的角色配置来说不可行,你可以通过更改 VM 大小、角色实例计数和缓存大小来为其他配置建模,直至找到满足你的应用程序需求的配置。

Caching Role Properties

若要使用 共同定位的角色 – Planner 工作表,请在 “输入:群集配置 ”部分输入值,以满足缓存要求。 使用输出部分的建议作为确定你的缓存群集配置的起点。

注意

共存缓存可以承受的负载是在考虑主要应用程序的带宽和 CPU 消耗后,确定可用于缓存的带宽/CPU 量的一种函数。 测试应该验证缓存和主要应用程序的性能。

确定了缓存群集配置后,便可以在角色的属性页中配置缓存群集。 有关配置共同定位角色缓存群集的示例,请参阅 如何:为 Azure In-Role 缓存配置缓存群集