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

计算限制

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集

Microsoft 计算实施限制机制来帮助提高服务的整体性能并为客户提供一致的体验。 超出最大允许限制的 API 请求将受到限制,并且用户会收到 HTTP 429 错误。 所有计算限制策略都是按每个区域实施的。

限制策略的工作原理是什么?

Microsoft 计算实施限制策略来限制每个资源、每个区域、每个订阅每分钟发出的 API 请求数量。 如果 API 请求的数量超出这些限制,请求就会受到限制。 以下是这些限制的工作原理:

  • 每资源限制 – 每个资源(例如虚拟机 (VM))对 API 请求都有特定的限制。 例如,假设用户在订阅中创建了 10 个 VM。 用户一分钟内可为每个 VM 发出最多 12 个更新请求。 如果用户超出了 VM 的限制,API 请求将受到限制。 此限制可确保少数资源不会消耗订阅级别限制并限制其他资源。

  • 订阅限制 – 除了资源限制之外,订阅中所有资源的 API 请求数量也存在总体限制。 任何超出此限制的 API 请求都会受到限制,无论是否已达到单个资源的限制。 例如,假设用户在订阅中拥有 200 个 VM。 尽管用户有权为每个 VM 发起最多 12 个更新 VM 请求,但更新 VM API 请求的总限制为每分钟 1500 个。 任何超过 1500 个订阅的更新 VM API 请求都会受到限制。

Microsoft 计算如何确定限制?

为了确定每个资源和订阅的限制,Microsoft 计算使用令牌桶算法。该算法为每个限制创建桶,并在每个桶中保存特定数量的令牌。 桶中的令牌数表示任何给定的分钟中的限制。

在限制窗口的开始创建资源时,桶会填充至其最大容量。 用户发起的每个 API 请求都会消耗一个令牌。 当令牌数耗尽为零时,后续 API 请求将受到限制。 对于资源和订阅,桶每分钟都会以恒定的速率重新填充新令牌,这称为桶重新填充率

例如:让我们考虑“VM 更新 API 的限制策略”,它规定桶重新填充率为每分钟 4 个令牌,最大桶容量为 12 个令牌。 用户按照下表对虚拟机 (VM) 调用更新 VM API 请求。 最初,在限制窗口开始时,桶中装有 12 个令牌。 到第四分钟,用户用完了所有 12 个令牌,因此清空了桶。 在第五分钟,根据桶重新填充率,桶中重新填充了四个新令牌。 因此,第五分钟可以发出四个 API 请求,而 Microsoft 计算因令牌不足而限制了一个 API 请求。

(分钟) 1st 第 2 个 第三 第 4 个 第 5 位 第 6 个
开始时的令牌数量 (A) 12 12 8 12 4 4
每分钟请求数 (B) 0 8 0 13 5 0
限制的请求数 (C) 0 0 0 1 1 0
期限结束时的剩余令牌数
D = Max(A-B, 0)
12 4 8 0 0 4

遵循类似的过程来确定订阅级别的限制。 以下部分详细介绍了用于确定虚拟机虚拟机规模集虚拟机规模集 VM 的限制的桶重新填充率和最大桶容量。

虚拟机的限制

虚拟机的 API 请求分为七个不同的策略。 每个策略都有其自身的限制,具体取决于该策略下的 API 请求的资源密集程度。 下表包含这些策略、相应的 REST API 及其各自限制的完整列表:

策略类别 REST API 资源级别 资源级别 订阅级别 订阅级别
桶重新填充率(每分钟) 最大桶容量
(每分钟)
桶重新填充率
(每分钟)
最大桶容量
(每分钟)
放置 VM
(创建新 VM)
创建 4 12 500 1,500
更新 VM
(更新现有 VM)
更新
重新应用重启
关闭电源
Start
通用化
转换为托管磁盘
重新部署
执行维护
捕获
运行命令
创建或更新
扩展 - 更新
扩展 - 删除
重置映像
更新
运行命令 - 更新
运行命令 - 删除
运行命令 - 创建或更新
4 12 500 1,500
删除 VM
(删除 VM)
删除
模拟逐出
解除分配
4 12 500 1,500
低成本获取 VM
(获取有关单个 VM 的信息)
Get
实例视图
扩展 - 获取
列出可用大小
检索启动诊断数据
运行命令 - 按虚拟机获取
运行命令 - 按虚拟机列出
12 36 8,000 24,000
高成本获取 VM1
(获取有关多个 VM 的信息)
列表
全部列出
按位置列出
NA NA 300 900
Get 操作
(获取有关异步 VM 操作的信息)
异步操作的状态 15 45 5,000 15,000
VM 来宾修补操作
(评估和安装来宾修补程序)
评估修补程序
安装修补程序
2 6 200 600

1 仅订阅级别的策略适用。

虚拟机规模集的限制

虚拟机规模集的 API 请求(统一和弹性)分为 5 个不同的策略。 每个策略都有其自身的限制,具体取决于该策略下的 API 请求的资源密集程度。 这些策略适用于弹性和统一业务流程模式。 下表包含这些策略、相应的 REST API 及其各自限制的完整列表:

策略类别 REST API 资源级别 资源级别 订阅级别 订阅级别
桶重新填充率
(每分钟)
最大桶容量
(每分钟)
桶重新填充率(每分钟) 最大桶容量
(每分钟)
放入
(创建新的规模集)
创建 4 12 125 375
更新
(更新现有的规模集)
更新
启动2
重启2
重新部署2
执行维护2
重置映像2
全部重置映像2
创建或更新
滚动升级 - 取消
扩展 - 创建
扩展 - 更新
扩展 - 删除
强制执行恢复 Service Fabric 平台更新域演练
转换为单个放置组
设置业务流程服务状态
4 12 500 1,500
删除
(删除规模集)
删除
关机2
解除分配
4 12 175 525
低成本获取
(获取有关单个规模集的信息)
Get
列出 SKU
滚动升级 - 获取最新
获取 OS 升级历史记录
12 36 800 2,400
高成本获取
(获取资源密集型信息)
获取实例视图
列出2
全部列出2
按位置列出2
10 30 360 1,080

2 仅订阅级别的策略适用。

虚拟机规模集虚拟机的限制

虚拟机规模集虚拟机的 API 请求分为 3 个不同的策略。 每个策略都有其自身的限制,具体取决于该策略下的 API 请求的资源密集程度。 下表包含这些策略、相应的 REST API 及其各自限制的完整列表:

策略类别 REST API 资源级别 资源级别 订阅级别 订阅级别
桶重新填充率
(每分钟)
最大桶容量
(每分钟)
桶重新填充率
(每分钟)
最大桶容量
(每分钟)
更新规模集 VM
(更新规模集中的现有 VM)
Start
重启
重置映像
全部重置映像
更新
模拟逐出
扩展 - 创建或更新
运行命令 - 创建或更新
运行命令 - 更新
4 12 500 1,500
删除规模集 VM
(删除规模集 VM)
删除
PowerOff
解除分配
扩展 - 删除
运行命令 - 删除
4 12 500 1,500
获取规模集 VM
(获取有关规模集 VM 的信息)
Get
获取实例视图
扩展 - 获取
运行命令 - 获取
检索启动诊断数据
12 36 2,000 6,000

故障排除指南

如果用户仍然面临计算限制带来的挑战,请参阅排查 Azure 中的限制错误 - 虚拟机。 其中详细介绍了如何排查限制问题,以及避免受到限制的最佳做法。

常见问题

用户是否需要执行任何操作?

用户不需要对其配置或工作负载进行任何更改。 所有现有 API 继续按原样工作。

限制策略提供哪些好处?

限制策略提供以下几种好处:

  • 所有计算资源都有统一的 1 分钟窗口。 受到限制 1 分钟后,用户可以成功进行 API 调用。

  • 由于限制是在资源级别定义的,因此没有任何单一资源可以耗尽订阅下的所有限制。

  • Microsoft 计算正在引入一种新算法(令牌桶算法)来确定限制。 该算法在发出大量 API 请求的同时为客户提供额外的缓冲。

当客户即将达到限制时,他们是否会收到警报?

作为每个响应的一部分,Microsoft 计算会返回 x-ms-ratelimit-remaining-resource,可用于确定针对策略的限制。 适用的限制策略列表将作为调用速率信息标头的响应返回。