Leer en inglés

Compartir a través de

Azure 虚拟机规模集自动缩放概述

Azure 虚拟机规模集可以增加或减少运行应用程序的虚拟机数。 可以通过多种方式更新实例计数:

  • 手动增加或减少规模集容量
  • 基于设置的计划
  • 根据基于指标阈值的规则
  • 自动基于预测性人工智能发现的使用模式

这种自动且弹性的行为可以减少监视和优化应用程序性能所需的管理开销。 本文概述所提供的性能指标,以及自动缩放可以执行的操作。

Nota

使用自动扩缩功能需要使用虚拟机扩缩配置文件来定义规模集,该配置文件将定义要添加的实例的配置。 详细了解虚拟机扩缩配置文件

手动缩放

你可以通过更新 sku.capacity 属性来手动增加或减少虚拟机规模集中的实例数。

  1. 转到现有虚拟机规模集。
  2. 在“设置”下选择“扩缩”选项卡。
  3. 选择 “手动缩放”(如果尚未选择)。
  4. 更新“实例计数”。
  5. 按“保存”按钮 。

自动缩放的好处

如果应用程序需求提高,规模集中虚拟机上的负载将会增大。 如果这种负载增大持续稳定,而不只是短暂的需求,那么可以配置自动缩放规则来增加和减少规模集中的虚拟机数。

Nota

对规模集使用自动实例修复时,规模集中的最大实例数可以为 1,000。

创建这些虚拟机并部署应用程序时,规模集将开始通过负载均衡器将流量分发到这些虚拟机。 可以控制要监视的指标,例如 CPU 或内存、应用程序负载必须满足给定阈值的时长,以及要添加到规模集的虚拟机数。

在夜间或周末,应用程序需求可能会降低。 如果这种负载降低在一段时间内持续稳定,可以配置自动缩放规则来减少规模集中的虚拟机数。 这种横向缩减操作可以减少运行规模集所需的成本,因为只运行满足当前需求所需的实例数。

使用基于主机的指标

可以创建内置于虚拟机提供的主机指标中的自动缩放规则。 主机指标可让你了解规模集中虚拟机的性能,而无需安装或配置更多代理和数据收集。 使用这些指标的自动缩放规则可以横向扩展或缩减虚拟机数,以响应 CPU 使用率、内存需求或磁盘访问。

可通过以下工具之一创建使用基于主机的指标的自动缩放规则:

若要创建使用更详细性能指标的自动缩放规则,可以在虚拟机上安装 和配置 Azure 诊断扩展 ,或使用 App Insights 配置应用程序

使用基于主机的指标、Azure 诊断扩展中的来宾内虚拟机指标和 App Insights 的自动缩放规则可使用以下配置设置。

指标源

自动缩放规则可以使用来自以下源之一的指标:

指标源 用例
当前规模集 基于主机的指标不需要安装或配置更多的代理。
存储帐户 Azure 诊断扩展会将性能指标写入 Azure 存储,然后,可使用 Azure 存储来触发自动缩放规则。
服务总线队列 应用程序或其他组件可将 Azure 服务总线队列中的消息传输到触发器规则。
Application Insights 安装在应用程序中的检测包,可直接从应用流式传输指标。

自动缩放规则条件

创建自动缩放规则时,可使用以下基于主机的指标。 如果使用 Azure 诊断扩展或 App Insights,可以定义要通过自动缩放规则监视和使用的指标。

指标名称
CPU 百分比
网络传入
网络传出
磁盘读取字节数
磁盘写入字节数
磁盘读取操作次数/秒
磁盘写入操作次数/秒
剩余 CPU 信用额度
已用 CPU 信用额度

创建用于监视给定指标的自动缩放规则时,规则会检查以下指标聚合操作之一:

  • 平均值
  • 最小值
  • 最大值
  • 总计
  • 最后一个
  • 计数

使用以下运算符之一将指标与定义的阈值进行比较时,会触发自动缩放规则:

  • 大于
  • 大于或等于
  • 小于
  • 小于或等于
  • 等于
  • 不等于

规则触发时的操作

自动缩放规则触发时,规模集可通过以下方式之一自动缩放:

缩放操作 用例
增加计数 要创建的虚拟机数固定。 在包含较少数量虚拟机的规模集中非常有用。
增加百分比 基于百分比的虚拟机增加量。 非常适用于较大的规模集,在其中按固定数量增加 VM 无法明显提高性能。
增加计数至 创建任意数量的虚拟机才能达到所需的最大数量。
减少计数 要删除的虚拟机的固定数量。 在包含较少数量虚拟机的规模集中非常有用。
降低百分比 基于百分比的虚拟机减少量。 适用于较大的规模集,其中固定数量减少可能不会显着减少资源消耗量和成本。
减少计数至 删除尽可能多的虚拟机,以达到所需的最低数量。

使用 Azure 诊断扩展的来宾虚拟机指标

Azure 诊断扩展是在虚拟机中运行的代理。 该代理可监视性能指标并将其保存到 Azure 存储。 这些性能指标包含有关虚拟机状态的更多详细信息,例如磁盘的 AverageReadTime 或 CPU 的 PercentIdleTime 。 可以根据对虚拟机性能的更详细了解来创建自动缩放规则,而不仅仅是 CPU 使用率或内存消耗的百分比。

若要使用 Azure 诊断扩展,必须为虚拟机创建 Azure 存储帐户,安装 Azure 诊断代理,然后将虚拟机配置为将特定的性能计数器流式传输到存储帐户。

有关详细信息,请参阅有关如何在 Linux 虚拟机Windows 虚拟机上启用 Azure 诊断扩展的文章。

App Insights 中的应用程序级指标

若要更深入地洞察应用程序的性能,可以使用 Application Insights。 在应用程序中安装一个小型检测包,用于监视应用并将遥测数据发送到 Azure。 可以监视应用程序响应时间、页面加载性能和会话计数等指标。 基于可能对客户体验造成影响的、可采取行动的见解触发规则时,可以使用这些应用程序指标创建粒度级的嵌入式自动缩放规则。

有关 App Insights 的详细信息,请参阅什么是 Application Insights

计划的自动缩放

还可以根据计划创建自动缩放规则。 使用这些基于计划的规则可在固定的时间自动缩放虚拟机的数目。 使用基于性能的规则时,在自动缩放规则触发和新虚拟机预配之前,可能会对应用程序的性能产生影响。 如果可以预见到此类需求,则预配额外的虚拟机,并准备好增加客户使用和应用程序需求。

以下示例是能够从基于计划的自动缩放规则中受益的情景:

  • 当客户需求增加时,在工作日开始时自动横向扩展虚拟机的数量。 在工作时间结束时,自动缩减虚拟机的数量,以在应用程序使用量低时,在夜间将资源成本降到最低。
  • 对于那些在每月或财务周期的特定时间应用程序使用量大的部门,请自动调整虚拟机的数量,以无缝应对增加的需求。
  • 当存在市场营销活动、促销或假日销售时,可以自动在预期的客户需求之前缩放虚拟机数量。

限制

  • 给定规模集最多可以有 20 个自动缩放规则。

后续步骤

可通过以下工具之一创建使用基于主机的指标的自动缩放规则:

有关如何管理虚拟机的信息,请参阅 使用 Azure PowerShell 管理虚拟机规模集

若要了解如何在触发自动缩放规则时生成警报,请参阅在 Azure Monitor 中使用自动缩放操作发送电子邮件和 Webhook 警报通知。 还可以在 Azure Monitor 中使用审核日志发送电子邮件和 Webhook 警报通知