在 Azure 数据资源管理器中管理水平缩放(横向扩展)群集以适应不断变化的需求

调整好群集的大小对于 Azure 数据资源管理器的性能至关重要。 静态群集大小可能导致利用不充分或利用过度,二者都不理想。 由于无法绝对准确地预测群集的需求,更好的方法是对群集进行缩放,根据不断变化的需求添加或删除容量和 CPU 资源。

有两个工作流可用于缩放 Azure 数据资源管理器群集:

  • 水平缩放,也称为缩减和横向扩展。
  • 垂直缩放,也称为纵向缩放。 本文介绍水平缩放工作流。

配置水平缩放

借助水平缩放,可以根据预定义的规则和计划自动缩放实例计数。 若要指定群集的自动缩放设置,请执行以下操作:

  1. 在 Azure 门户中,转到 Azure 数据资源管理器群集资源。 在“设置”下选择“横向扩展”。

  2. 在“横向扩展”窗口中,选择想要的自动缩放方法:手动缩放、优化自动缩放或自定义自动缩放 。

手动缩放

在手动缩放选项中,群集有一个不会自动更改的静态容量。 使用“实例计数”栏选择静态容量。 群集的缩放将保留在所选设置中,直到发生了更改。

Manual scale method.

优化的自动缩放是群集创建期间的默认设置,也是建议的缩放方法。 此方法可优化群集性能和成本,如下所示:

  • 如果群集未充分利用,它会横向缩减来降低成本,而不会影响所需的性能。
  • 如果群集使用过度,则它会横向扩展来保持最佳性能。

若要配置“优化的自动缩放”:

  1. 选择“优化的自动缩放”。

  2. 指定最小和最大实例计数。 群集自动缩放范围介于这些值之间,由负载决定。

  3. 选择“保存”。

    Optimized autoscale method.

优化的自动缩放随即开始工作。 可在 Azure 中的群集活动日志中查看其操作。

优化的自动缩放的逻辑

优化的自动缩放由预测逻辑或反应逻辑进行管理。 预测逻辑跟踪群集的使用模式,当它以高置信度识别季节性时,会管理群集的缩放。 否则,跟踪群集实际使用情况的反应逻辑用于根据当前资源使用情况级别对群集缩放操作做出决策。

预测流和反应流的主要指标包括:

  • CPU
  • 缓存利用率因子
  • 引入利用率

预测逻辑和反应逻辑都绑定到群集的大小边界(最小和最大实例数,详见优化的自动缩放配置中定义)。 由于对群集资源的影响、添加或删除实例所需的时间,以及在所有节点之间重新均衡热缓存所需的时间,因此不需要频繁进行群集横向扩展和横向缩减操作。

预测性自动缩放

预测逻辑根据群集在过去几周的使用模式预测第二天的使用情况。 预测用于创建横向缩减或横向扩展操作的计划,以提前调整群集的大小。 这样,可在负载更改时及时完成群集缩放和数据重新均衡。 此逻辑对于季节性模式(例如每日或每周使用高峰)尤其有效。

但是,如果使用量出现一个超过预测的独特峰值,优化的自动缩放将回退到反应逻辑上。 发生这种情况时,根据资源使用情况的最新级别临时执行横向缩减或横向扩展操作。

反应式自动缩放

横向扩展

当群集接近过度使用状态时,将执行横向扩展操作来保持最佳性能。 当至少发生以下条件之一时,将执行横向扩展操作:

  • 缓存利用率过高状态持续了一小时
  • CPU 利用率过高状态持续了一小时
  • 引入利用率过高状态持续了一小时

缩小

群集未充分利用时,将执行横向缩减操作来降低成本,同时保持最佳性能。 可使用多个指标来验证是否可安全地在群集中横向缩减。

为了确保不会出现资源过载情况,在执行横向缩减之前需要验证以下指标:

  • 缓存利用率不高
  • CPU 利用率低于平均值
  • 引入利用率低于平均值
  • 流引入利用率不高(如果使用流引入)
  • “保持连接”指标高于定义的最小值、处理正确,并按时指示群集有响应
  • 没有查询限制
  • 失败的查询数低于定义的最小值

备注

横向缩减逻辑要求在实现优化的横向缩减之前完成 1 天的评估。 此评估每一小时进行一次。 如果需要立即更改,请使用手动缩放

自定义自动缩放

尽管建议使用优化的自动缩放选项,但也支持 Azure 自定义自动缩放。 使用自定义自动缩放,可以根据指定的指标动态地缩放群集。 按照以下步骤配置自定义自动缩放。

Scale rule.

  1. 在“自动缩放设置名称”框中输入一个名称,例如“横向扩展: 缓存使用率”。

  2. 至于“缩放模式”,请选择“基于指标缩放”。 此模式提供动态缩放。 也可选择“缩放为具体实例数”。

  3. 选择“+ 添加规则”。

  4. 在右侧的“缩放规则”部分,输入每项设置的值。

    条件

    设置 说明和值
    时间聚合 选择聚合条件,例如“平均”。
    指标名称 选择要求缩放操作依赖的指标,例如“缓存使用率”。
    时间粒度统计信息 AverageMinimumMaximumSum 之间选择。
    运算符 选择适当的选项,例如“大于或等于”。
    阈值 选择适当的值。 例如,对于缓存使用率,一开始可以选择 80%。
    持续时间(分钟) 选择适当的时间值,以便系统在计算指标时进行回溯。 一开始可将默认值设置为 10 分钟。

    操作

    设置 说明和值
    操作 选择进行横向缩减或横向扩展的适当选项。
    实例计数 选择在符合指标条件的情况下,需要添加或删除的节点或实例的数目。
    冷却(分钟) 选择需要在两项缩放操作之间等待的适当时间间隔。 一开始可将默认值设置为 5分钟。
  5. 选择“添加” 。

  6. 在左侧的“实例限制”部分,输入每项设置的值。

    设置 说明和值
    最低 群集在缩放时不管使用率如何都不得低于的实例数。
    最高 群集在缩放时不管使用率如何都不得高于的实例数。
    默认 默认实例数。 在出现资源指标读取问题时使用此设置。
  7. 选择“保存” 。

现在已为 Azure 数据资源管理器群集配置了水平缩放。 添加另一个垂直缩放规则。 如果在解决群集缩放问题时需要帮助,请在 Azure 门户中提交支持请求