参考 - IoT 中心配额和限制

本文介绍 IoT 中心的配额,所提供的信息有助于你理解限制的工作原理。

配额和限制

每个 Azure 订阅最多可以有 50 个 IoT 中心和 1 个免费中心。

每个 IoT 中心都在特定层中预配了特定单位数。 层和单位数决定了可以发送的消息的每日配额上限。 用于计算每日配额的消息大小为 0.5 KB(适用于中心的免费层)和 4 KB(适用于所有其他层)。 有关详细信息,请参阅 [Azure IoT 中心定价][lnk-pricing]。

层还决定了 IoT 中心对所有操作强制实施的限制。

IoT 即插即用

IoT 即插即用设备会为每个接口(包括根)发送至少一条遥测消息,这可能会增加计入消息配额的消息数量。

操作限制

操作限制是在分钟范围内应用的速率限制,主要是为了防止不当使用。 它们还受流量整形的约束。

下表显示了强制限制。 值与单个中心相关。

限制 免费、B1 和 S1 B2 和 S2 B3 和 S3
标识注册表操作(创建、检索、列出、更新、删除) 1.67/秒/单位(100/分钟/单位) 1.67/秒/单位(100/分钟/单位) 83.33/秒/单位(5,000/分钟/单位)
新设备连接(此限制适用于建立 新连接 的速率,而不是连接总数) 高于 100/秒或 12/秒/单位
例如,两个 S1 单位是 2*12 = 24 个新连接/秒,但你的单位至少有 100 个新连接/秒。 如果有 9 个 S1 单位,则你的单位就有 108 个新连接/秒 (9*12)。
120 个新连接/秒/单位 6,000 个新连接/秒/单位
设备到云的发送 100 个发送操作/秒或 12 个发送操作/秒/单位,具体取决于哪一个更高
例如,两个 S1 单位是 2*12 = 24/秒,但是在所有单位中至少有 100 个发送操作/秒。 如果有 9 个 S1 单位,则你的单位就有 108 个发送操作/秒 (9*12)。
120 个发送操作/秒/单位 6,000 个发送操作/秒/单位
云到设备的发送1 1.67 个发送操作/秒/单位(100 条消息/分钟/单位) 1.67 个发送操作/秒/单位(100 个发送操作/分钟/单位) 83.33 个发送操作/秒/单位(5,000 个发送操作/分钟/单位)
云到设备的接收1
(仅当设备使用 HTTPS 时)
16.67 个接收操作/秒/单位(1,000 个接收操作/分钟/单位) 16.67 个接收操作/秒/单位(1,000 个接收操作/分钟/单位) 833.33 个接收操作/秒/单位(50,000 个接收操作/分钟/单位)
文件上传 1.67 次文件上传启动/秒/单位(100/分钟/单位) 1.67 次文件上传启动/秒/单位(100/分钟/单位) 83.33 次文件上传启动/秒/单位(5,000/分钟/单位)
直接方法1 160KB/秒/单位2 480KB/秒/单位2 24MB/秒/单位2
查询 20/分钟/单位 20/分钟/单位 1,000/分钟/单位
孪生(设备和模块)读取1 100/秒 高于 100/秒或 10/秒/单位 500/秒/单位
孪生更新(设备和模块)1 50/秒 高于 50/秒或 5/秒/单位 250/秒/单位
作业操作1
(创建、更新、列表、删除)
1.67/秒/单位(100/分钟/单位) 1.67/秒/单位(100/分钟/单位) 83.33/秒/单位(5,000/分钟/单位)
作业设备操作1
(更新孪生、调用直接方法)
10/秒 高于 10/秒或 1/秒/单位 50/秒/单位
配置和 Edge 部署1
(创建、更新、列表、删除)
0.33/秒/单位(20/分钟/单位) 0.33/秒/单位(20/分钟/单位) 0.33/秒/单位(20/分钟/单位)
设备流启动率1 5 个新流/秒 5 个新流/秒 5 个新流/秒
最大并发连接设备流数1 50 50 50
最大设备流数据传输1(每日聚合量) 300 MB 300 MB 300 MB

1此功能在 IoT 中心的基本层内不可用。 有关详细信息,请参阅如何选择正确的 IoT 中心
2限制计量大小为 4 KB。 限制仅基于请求有效负载大小。

限制详细信息

  • 计量大小决定了以什么样的增量来使用限制。 如果直接调用的有效负载为 0 到 4 KB,则将其计为 4 KB。 可以每个单位每秒进行高达 40 次的调用,然后才会达到 160 KB/秒/单位的限制。

    同样,如果有效负载为 4 KB 到 8 KB,则每个调用计为 8 KB,可以每个单位每秒进行高达 20 次的调用,然后才会达到最大限制。

    最后,如果有效负载为 156 KB 到 160 KB,则在中心只能每个单位每秒进行 1 次调用,然后就会达到 160 KB/秒/单位的限制。

  • 就 S3 层级的作业设备操作(更新孪生、调用直接方法)来说,50/秒/单位仅适用于使用作业来调用方法的情况。 如果直接调用直接方法,则适用原始的 24 MB/秒/单位(针对 S3)限制。

  • 配额 是每天可以在中心发送的聚合消息数。 可以在 IoT 中心定价页上的“消息总数/天”列下找到中心的配额限制。

  • 云到设备和设备到云限制决定了发送消息的最大速率(在不考虑 4 KB 区块情况下的消息数)。 D2C 消息最大为 256 KB;C2D 消息最大为 64 KB。 这些是每种类型的消息的[最大消息大小]。

  • 最好是限制调用数,这样就不会达到/超过限制。 如果你达到限制,IoT 中心会以错误代码 429 进行响应,客户端应回退并重试。 这些限制是按中心(在某些情况下,按中心/单位)应用的。 有关详细信息,请参阅管理连接和可靠的消息传送/重试模式

流量整形

为了应对突发流量,IoT 中心可在有限的一段时间内接受超出限制的请求。 其中的前几个请求会立即得到处理。 但是,如果请求数持续违反限制,IoT 中心会开始将请求放入队列,并以限制速率对请求进行处理。 此效应称为“流量整形”。 此外,此队列的大小受到限制。 如果违反限制的情况持续出现,队列最终将会填满,而 IoT 中心会开始拒绝请求并引发 429 ThrottlingException

例如,如果你使用模拟设备每秒将 200 条设备到云的消息发送到 S1 IoT 中心(它限制为每秒发送 100 条 D2C 消息)。 在前一两分钟,消息会立即得到处理。 但是,由于设备发送的消息数持续超过限制,IoT 中心随后将每秒处理 100 条消息,并将剩余的消息放入队列。 此时你会注意到延迟增大。 最终,在队列填满后,你会开始收到 429 ThrottlingException,并且“限制错误数”IoT 中心指标会开始增加。 若要了解如何基于指标创建警报和图表,请参阅监视 IoT 中心

标识注册表操作限制

设备标识注册表操作用于设备管理与预配方案中的运行时使用。 通过导入和导出作业可以支持读取或更新大量的设备标识。

当通过批量注册表更新操作启动标识操作时(“而不是”批量导入和导出作业),则会应用相同的限制。 例如,如果你想要提交批量操作来创建 50 个设备,并且有具有 1 个单元的 S1 IoT 中心,则每分钟仅接受其中两个批量请求。 这是因为对于具有 1 个单元的 S1 IoT 中心,标识操作限制为 100/分钟/单元。 在这种情况下,将拒绝同一分钟内第三个请求(以及更多),因为已达到该限制。

设备连接限制

“设备连接” 限制控制与 IoT 中心建立新设备连接的速率。 “设备连接” 限制不控制同时连接的最大设备数。 设备连接 速率限制取决于为 IoT 中心预配的单位数。

例如,如果购买的是单一 S1 单位,则限制为每秒 100 个连接。 因此,若要连接 100,000 台设备,至少需要花费 1,000 秒(大约 16 分钟)。 但是,同时连接的设备数可与用户在标识注册表中注册的设备数相同。

其他限制

IoT 中心强制实施其他操作限制:

操作 限制
设备 可注册到单个 IoT 中心的设备和模块的总数上限为 1,000,000。 只能联系 Microsoft 支持部门来提高此限制。
文件上传 每个设备 10 个并发文件上传。
作业1 最大并发作业数为 1(对于“免费”层和 S1)、5(对于 S2)和 10(对于 S3)。 但是,所有层的最大并发设备导入/导出作业数为 1。
作业历史记录最多保留 30 天。
额外终结点 付费 SKU 中心可能有 10 个额外终结点。 免费 SKU 中心可能有 1 个额外终结点。
消息路由查询 付费 SKU 中心可能有 100 个路由查询。 免费 SKU 中心可包含 5 个路由查询。
消息扩充 付费 SKU 中心可能有最多 10 个消息扩充。 免费 SKU 中心可能有最多 2 个消息扩充。
设备到云的消息传送 最大消息大小 256 KB
云到设备的消息传递1 最大消息大小为 64 KB。 最大传递挂起消息数为每个设备 50 个。
直接方法1 直接方法有效负载的最大大小为 128 KB。
自动设备和模块配置1 每个付费 SKU 中心 100 个配置。 每个免费 SKU 中心 20 个配置。
IoT Edge 自动部署1 每个部署 50 个模块。 每个付费 SKU 中心 100 个部署(包括分层部署)。 每个免费 SKU 中心 10 个部署。
孪生1 所需属性和报告的属性部分的最大大小各为 32 KB。 标记部分的最大大小为 8 KB。
共享访问策略 共享访问策略的最大数目为 16
x509 CA 证书 可在 IoT 中心注册的 x509 CA 证书的最大数目为 25。

1此功能在 IoT 中心的基本层内不可用。 有关详细信息,请参阅如何选择正确的 IoT 中心

提高配额或限制

无论何时,都可通过增加 IoT 中心内的预配单位数来提高配额或限制。

延迟

IoT 中心致力于降低所有操作的延迟。 但是,由于网络条件和其他不可预测因素,它不能保证特定的延迟。 在设计解决方案时,应该:

  • 避免对任何 IoT 中心操作的最大延迟进行假定。
  • 在离设备最近的 Azure 区域预配 IoT 中心。
  • 请考虑在设备上或在离设备近的网关上使用 Azure IoT Edge 执行易受延迟影响的操作。

如前所述,多个 IoT 中心单位影响限制,但未提供任何附加延迟权益或保证。 如果发现操作延迟意外增加,请与 Microsoft 支持部门联系。

后续步骤

有关 IoT 中心限制行为的深入讨论,请参阅博客文章 IoT 中心限制与你息息相关

此 IoT 中心开发人员指南中的其他参考主题包括: