你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 应用服务自动扩缩

注意

自动扩缩目前处于预览状态。 它适用于高级 V2(P1V2、P2V2、P3V2)和高级 V3(P1V3、P2V3、P3V3)定价层,并且支持所有应用类型:Windows、Linux 和 Windows 容器。 部署槽位流量不支持自动缩放。

自动缩放是一种新的横向扩展选项,可自动处理 Web 应用和应用服务计划的缩放决策。 它不同于预先存在的 Azure 自动缩放,后者允许你根据计划和资源定义缩放规则。 使用自动缩放,你可以调整缩放设置以提高应用的性能并避免冷启动问题。 该平台会预热实例以在横向扩展时充当缓冲区,确保实现性能的平稳转换。 可以使用 Application Insights 实时指标来检查当前实例计数,使用 performanceCounters 来查看实例计数历史记录。 每个实例(包括预热的实例)按秒收费。

应用服务上提供的横向扩展和横向缩减选项的比较如下:

  手动 自动缩放 自动缩放
可用定价层 基本和更高 标准和更高 高级 V2(P1V2、P2V2、P3V2)和高级 V3(P1V3、P2V3、P3V3)
基于规则的扩缩 无,平台将根据 HTTP 流量来管理横向扩展和缩减。
基于时间计划的扩缩
始终就绪实例 无,Web 应用在手动扩缩的实例上运行。 无,在基于为自动扩缩规则定义的阈值进行横向扩展操作期间,Web 应用将在其他实例上运行。 有(至少 1 个)
预热实例 有(默认为 1 个)
每应用最大值 No

自动扩缩的工作原理

请为应用服务计划启用自动扩缩,并为每个 Web 应用配置一系列实例。 当 Web 应用开始接收 HTTP 流量时,应用服务会监视相应负载并添加实例。 当需要同时横向扩展某个应用服务计划中的多个 Web 应用时,可能会共享资源。

下面是应选择自动横向扩展的一些情况:

  • 你不希望基于资源指标设置自动扩缩规则。
  • 你希望同一应用服务计划中的 Web 应用能够以不同的方式相互独立地进行扩缩。
  • Web 应用连接到了数据库或旧系统,其扩缩速度可能不如 Web 应用快。 通过自动扩缩,可以设置应用服务计划可以扩展到的最大实例数。 此设置有助于避免 Web 应用给后端造成过重的负担。

启用自动扩缩

“最大突发数”是应用服务计划可以根据传入的 HTTP 请求增加到的最大实例数。 对于高级 v2 和 v3 计划,可以设置最多 30 个实例的最大突发数。 最大突发数必须等于或大于为应用服务计划指定的辅助角色数。

重要

需要禁用 Always ON 才能使用自动扩缩。

若要启用自动缩放,请导航到 Web 应用的左侧菜单并选择“横向扩展(应用服务计划)”。 选择“自动(预览)”,更新“最大突发数”值,然后选择“保存”按钮。

Automatic scaling in Azure portal

设置最小 Web 应用实例数

“始终就绪实例数”是一种应用级设置,用于指定最小实例数。 如果负载超过始终就绪实例可以处理的负载,则会添加额外的实例(最多为应用服务计划的指定最大突发数)。

若要设置 Web 应用实例的最小数量,请导航到 Web 应用的左侧菜单并选择“横向扩展(应用服务计划)”。 更新“始终就绪实例”值,然后选择“保存”按钮。

Screenshot of always ready instances

设置最大 Web 应用实例数

“最大扩缩限制”将设置 Web 应用可扩展到的最大实例数。 当下游组件(如数据库)的吞吐量有限时,最大扩缩限制将会有所帮助。 每应用最大值可以介于 1 和最大突发数之间。

若要设置 Web 应用实例的最大数量,请导航到 Web 应用的左侧菜单并选择“横向扩展(应用服务计划)”。 选择“强制实施横向扩展限制”,更新“最大缩放限制”,然后选择“保存”按钮。

Screenshot of maximum scale limit

更新预热实例

预热实例设置将在 HTTP 扩缩和激活事件期间提供热实例作为缓冲区。 预热实例将持续提供缓冲,直至达到最大横向扩展限制。 默认的预热实例计数为 1,在大多数情况下此值应保留为 1。

无法在门户中更改预热实例设置,必须改用 Azure CLI 才行。

禁用自动扩缩

若要禁用自动缩放,请导航到 Web 应用的左侧菜单并选择“横向扩展(应用服务计划)”。 选择“手动”,然后选择“保存”按钮。

Screenshot of manual scaling

自动扩缩是否支持 Azure Functions 应用?

否,只能在要启用自动扩缩的应用服务计划中使用 Azure 应用服务 Web 应用。 如果在同一应用服务计划中已有 Azure Functions 应用,或者创建新的 Azure Functions 应用,则会禁用自动扩缩。 对于 Azure Functions,建议改为使用 Azure Functions 高级计划

更多资源