自动缩放 Azure SignalR 服务的单元

重要

自动缩放仅在 Azure SignalR 服务高级层中可用。

Azure SignalR 服务高级层支持自动缩放功能,该功能是 Azure Monitor 自动缩放的一种实现。 使用自动缩放功能可以自动缩放 SignalR 服务的单位计数,以便与服务上的实际负载匹配。 自动缩放可以帮助优化应用程序的性能和成本。

Azure SignalR 添加了自身的服务指标。 但是,大多数用户界面是共享的,对于其他支持自动缩放的 Azure 服务是通用的。 如果你不熟悉 Azure Monitor 指标主题,请在深入了解 SignalR 服务指标之前先查看 Azure Monitor 指标聚合和显示说明

了解 SignalR 服务中的自动缩放

自动缩放允许设置条件,用于在运行服务时动态更改分配给 SignalR 服务的单位数。 自动缩放条件基于指标,例如“服务器负载”。 还可以将自动缩放配置为按计划运行,例如在每日的特定时间段运行。

例如,可以使用自动缩放来实现以下缩放方案。

  • 当“连接配额利用率”超过 70% 时增加单位数。
  • 当“服务器负载”低于 20% 时减少单位数。
  • 创建一个计划,以在高峰期增加单位数,并在下班时间减少单位数。

多种因素会影响 SignalR 服务的性能。 没有任何一个指标可以提供系统性能的完整视图。 例如,如果要发送大量消息,则即使连接配额相对较低,也可能需要横向扩展。 “连接配额利用率”和“服务器负载”的组合指示了整个系统负载。 以下准则适用。

  • 如果连接计数超过 80-90%,则横向扩展。 在连接计数用完之前横向扩展可以确保有足够的缓冲用于在横向扩展生效之前接受新连接。
  • 如果“服务器负载”超过 80-90%,则横向扩展。 尽早扩展可确保服务有足够的容量用于在横向扩展操作期间保持性能。

自动缩放操作通常在触发后的 3-5 分钟生效。 重要的是不要过于频繁地更改单位数。 一条很好的经验法则是,在完成上一次自动缩放后等待 30 分钟,然后再执行下一次自动缩放操作。 在某些情况下,可能需要进行试验以找到最佳的自动缩放间隔。

自定义自动缩放设置

打开自动缩放设置页:

  1. 转到 Azure 门户

  2. 打开 SignalR 服务页。

  3. 在左侧菜单中的“设置”下,选择“横向扩展”。

  4. 选择“配置”选项卡。如果你有高级层 SignalR 实例,将看到“选择如何缩放资源”的两个选项:

    • 手动缩放:可以手动更改单位数。
    • 自定义自动缩放:可以根据指标和/或计划创建自动缩放条件。
  5. 选择“自定义自动缩放”。 使用此页管理 Azure SignalR 服务的自动缩放条件。

默认缩放条件

首次打开自定义自动缩放设置时,会看到系统已经为你创建了“默认”缩放条件。 当没有其他缩放条件与设置的条件匹配时,将执行此缩放条件。 无法删除“默认”条件,但可以将它重命名、更改规则以及更改自动缩放执行的操作。

无法将默认条件设置为在特定日期或日期范围自动缩放。 默认条件仅支持在一个单位范围内缩放。 若要根据计划缩放,需要添加新的缩放条件。

在选择“自定义自动缩放”之后首次保存默认条件之前,自动缩放不会生效。

添加或更改缩放条件

可以使用两个选项来缩放 Azure SignalR 资源:

  • 基于指标缩放 - 基于动态指标在单位限制范围内缩放。 定义一个或多个缩放规则,以设置用于评估指标的条件。
  • 缩放到特定的单位数 - 根据日期范围或重复计划缩放到特定的单位数。

基于指标缩放

以下过程演示如何添加条件,以在“连接配额利用率”超过 70% 时增加单位数(横向扩展),在“连接配额利用率”小于 20% 时减少单位数(横向缩减)。 增加或减少的单元皆为可用单元。

  1. 在“横向扩展”页上,为“选择缩放资源方式”选项选择“自定义自动缩放”。

  2. 为“缩放模式”选择“基于指标缩放” 。

  3. 选择“+ 添加规则”。 Screenshot of custom rule based on a metric.

  4. 在“缩放规则”页上执行以下步骤:

    1. 从“指标名称”下拉列表中选择指标。 在此示例中,它是“连接配额利用率”。
    2. 选择运算符和阈值。 在此示例中,触发缩放操作的运算符为“大于”,指标阈值为“70”。
    3. 在“操作”部分中选择“操作” 。 在此示例中,操作设置为“增加”。
    4. 然后选择“添加”Screenshot of default autoscale rule screen.
  5. 再次选择“+ 添加规则”,然后在“缩放规则”页上执行以下步骤 :

    1. 从“指标名称”下拉列表中选择指标。 在此示例中,它是“连接配额利用率”。
    2. 选择运算符和阈值。 在此示例中,触发缩放操作的运算符为“小于”,指标阈值为“20”。
    3. 在“操作”部分中选择“操作” 。 在此示例中,操作设置为“减少”。
    4. 然后选择“添加”Screenshot Connection Quota Utilization scale rule.
  6. 设置最小、最大和默认单位数。

  7. 在工具栏上选择“保存”,保存自动缩放设置。

缩放到特定单元

按照以下步骤将规则配置为缩放到特定的单位范围。

  1. 在“横向扩展”页上,为“选择缩放资源方式”选项选择“自定义自动缩放”。
  2. 为缩放模式选择“缩放到特定单元数”。
  3. 对于单元数,请选择默认单元数。 Screenshot of scale rule criteria.

添加更多条件

上一部分介绍了如何为自动缩放设置添加默认条件。 该部分说明如何将更多条件添加到自动缩放设置。

  1. 在“横向扩展”页上,为“选择缩放资源方式”选项选择“自定义自动缩放”。
  2. 选择“默认”块下的“添加缩放条件” 。 Screenshot of custom scale rule screen.
  3. 确认已选择“基于指标的缩放”选项。
  4. 选择“+ 添加规则”以添加以下规则:在连接配额利用率超过 70% 时增加单元数。 执行默认条件部分中的步骤。
  5. 设置最大单元数和最小单元数,以及默认单元数。
  6. 可以针对自定义条件(而不是默认条件)设置计划。 可以为条件指定开始日期和结束日期(或)选择一周中的特定日期(星期一、星期二等)。
    1. 如果选择“指定开始/结束日期”,则选择“时区”、“开始日期和时间”和“结束日期和时间”(如下图所示)以使条件生效 。
    2. 如果选择“重复特定日期”,则选择应用该条件的星期、时区、开始时间和结束时间。

后续步骤

有关从 Azure CLI 管理自动缩放的详细信息,请参阅 az monitor autoscale