Skip to content

Commit d836771

Browse files
Merge pull request #278504 from kgremban/jun17-ghissue
Review quotas and throttling
2 parents 99c56d8 + 8a582c5 commit d836771

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

articles/iot-hub/iot-hub-devguide-quotas-throttling.md

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
---
22
title: Understand Azure IoT Hub quotas and throttling
3+
titleSuffix: Azure IoT Hub
34
description: This article provides a description of the quotas that apply to IoT Hub and the expected throttling behavior.
45
author: kgremban
56

67
ms.author: kgremban
78
ms.service: iot-hub
89
ms.topic: concept-article
9-
ms.date: 08/15/2023
10+
ms.date: 06/17/2024
1011
ms.custom: ["Role: Cloud Development", "Role: Operations", "Role: Technical Support"]
1112
---
1213

1314
# IoT Hub quotas and throttling
1415

15-
This article explains the quotas for an IoT hub, and provides information to help you understand how throttling works.
16+
This article explains the limits that apply to IoT Hub resources.
1617

17-
Each Azure subscription can have at most 50 IoT hubs, and at most 1 Free hub.
18+
Each Azure subscription can have at most 50 IoT hubs, and at most 1 hub in the free tier.
1819

19-
Each IoT hub is provisioned with units in a specific tier. The tier and number of units determine the maximum daily quota of messages that you can send in your hub per day. The message size used to calculate the daily quota is 0.5 KB for a free tier hub and 4KB for all other tiers. For more information, see [Azure IoT Hub pricing](https://azure.microsoft.com/pricing/details/iot-hub/) or [Choose the right IoT Hub tier for your solution].
20+
Each IoT hub is provisioned with units in a specific tier. The tier and number of units determine the maximum daily quota of messages. The message size used to calculate the daily quota is 0.5 KB for a free tier hub and 4 KB for all other tiers. For more information, see [Azure IoT Hub pricing](https://azure.microsoft.com/pricing/details/iot-hub/) or [Choose the right IoT Hub tier for your solution](./iot-hub-scaling.md).
2021

21-
You can find your hub's quota limit under the column **Total number of messages /day** on the [IoT Hub pricing page](https://azure.microsoft.com/pricing/details/iot-hub/) in the Azure portal.
22+
You can find your hub's quota limit in the Azure portal. Your IoT hub's **Overview** page lists the **Daily message quota**. You can also view and adjust this limit in **Hub settings** > **Pricing and scale**.
2223

2324
The tier also determines the throttling limits that IoT Hub enforces on all operations.
2425

2526
## Operation throttles
2627

2728
Operation throttles are rate limitations that are applied in minute ranges and are intended to prevent abuse. They're also subject to [traffic shaping](#traffic-shaping).
2829

29-
It's a good practice to throttle your calls so that you don't hit/exceed the throttling limits. If you do hit the limit, IoT Hub responds with error code 429 and the client should back-off and retry. These limits are per hub (or in some cases per hub/unit). For more information, see [Retry patterns](../iot/concepts-manage-device-reconnections.md#retry-patterns).
30+
It's a good practice to throttle your calls so that you don't hit/exceed the throttling limits. If you do hit the limit, IoT Hub responds with error code 429, and the client should back-off and retry. These limits are per hub (or in some cases per hub per unit). For more information, see [Retry patterns](../iot/concepts-manage-device-reconnections.md#retry-patterns).
3031

3132
For pricing details about which operations are charged and under what circumstances, see [billing information](iot-hub-devguide-pricing.md).
3233

@@ -60,11 +61,11 @@ The following table shows the enforced throttles for operations that are availab
6061
| Maximum number of concurrently connected device streams | 50 | 50 | 50 |
6162
| Maximum device stream data transfer (aggregate volume per day) | 300 MB | 300 MB | 300 MB |
6263

63-
<sup>1</sup>Throttling meter size is 4 KB. Throttling is based on request payload size only.
64+
<sup>1</sup> Throttling meter size is 4 KB. Throttling is based on request payload size only.
6465

6566
### Throttling details
6667

67-
* The meter size determines at what increments your throttling limit is consumed. If your direct call's payload is between 0 KB and 4 KB, it's counted as 4 KB. You can make up to 40 calls per second per unit before hitting the limit of 160 KB/sec/unit.
68+
* The meter size determines at what increments your throttling limit is consumed. If your direct call's payload is between 0 KB and 4 KB, it counts as 4 KB. You can make up to 40 calls per second per unit before hitting the limit of 160 KB/sec/unit.
6869

6970
Similarly, if your payload is between 4 KB and 8 KB, each call accounts for 8 KB and you can make up to 20 calls per second per unit before hitting the max limit.
7071

@@ -78,34 +79,34 @@ The following table shows the enforced throttles for operations that are availab
7879

7980
To accommodate burst traffic, IoT Hub accepts requests above the throttle for a limited time. The first few of these requests are processed immediately. However, if the number of requests continues to violate the throttle, IoT Hub starts placing the requests in a queue and requests are processed at the limit rate. This effect is called *traffic shaping*. Furthermore, the size of this queue is limited. If the throttle violation continues, eventually the queue fills up, and IoT Hub starts rejecting requests with `429 ThrottlingException`.
8081

81-
For example, you use a simulated device to send 200 device-to-cloud messages per second to your S1 IoT Hub (which has a limit of 100/sec device-to-cloud sends). For the first minute or two, the messages are processed immediately. However, since the device continues to send more messages than the throttle limit, IoT Hub begins to only process 100 messages per second and puts the rest in a queue. You start noticing increased latency. Eventually, you start getting `429 ThrottlingException` as the queue fills up, and the ["Number of throttling errors" IoT Hub metric](monitor-iot-hub-reference.md#device-telemetry-metrics) starts increasing. To learn how to create alerts and charts based on metrics, see [Monitor IoT Hub](monitor-iot-hub.md).
82+
For example, you send 200 device-to-cloud messages per second to your S1 IoT Hub (which has a limit of 100 messages/sec). For the first minute or two, the messages are processed immediately. However, since the device continues to send more messages than the throttle limit, IoT Hub begins to only process 100 messages per second and puts the rest in a queue. You start noticing increased latency. Eventually, you start getting `429 ThrottlingException` as the queue fills up, and the ["Number of throttling errors" IoT Hub metric](monitor-iot-hub-reference.md#device-telemetry-metrics) starts increasing. To learn how to create alerts and charts based on metrics, see [Monitor IoT Hub](monitor-iot-hub.md).
8283

8384
### Identity registry operations throttle
8485

8586
Device identity registry operations are intended for run-time use in device management and provisioning scenarios. Reading or updating a large number of device identities is supported through [import and export jobs](iot-hub-devguide-identity-registry.md#import-and-export-device-identities).
8687

87-
When initiating identity operations through [bulk registry update operations](/rest/api/iothub/service/bulkregistry/updateregistry) (*not* bulk import and export jobs), the same throttle limits apply. For example, if you want to submit bulk operation to create 50 devices, and you have a S1 IoT Hub with one unit, only two of these bulk requests are accepted per minute. This limitation is because the identity operation throttle for an S1 IoT Hub with one unit is 100/min/unit. Also in this case, a third request (and beyond) in the same minute would be rejected because the limit has been reached.
88+
The same throttle limits apply to identity operations made through [bulk registry update operations](/rest/api/iothub/service/bulkregistry/updateregistry) (*not* bulk import and export jobs). For example, if you submit multiple bulk operations to create 50 devices each, and you have an S1 IoT Hub with one unit, only two of these bulk requests are accepted per minute. This limitation is because the identity operation throttle for an S1 IoT Hub with one unit is 100/min/unit. Also in this case, a third request (and beyond) in the same minute would be rejected because the limit has been reached.
8889

8990
### Device connections throttle
9091

91-
The *device connections* throttle governs the rate at which new device connections can be established with an IoT hub. The *device connections* throttle doesn't govern the maximum number of simultaneously connected devices. The *device connections* rate throttle depends on the number of units that are provisioned for the IoT hub.
92+
The *device connections* throttle governs the rate at which new device connections can be established with an IoT hub. The *device connections* throttle doesn't relate to the maximum number of simultaneously connected devices. Increate the number of units in an IoT hub to increase the *device connections* rate.
9293

93-
For example, if you buy a single S1 unit, you get a throttle of 100 connections per second. Therefore, to connect 100,000 devices, it takes at least 1,000 seconds (approximately 16 minutes). However, you can have as many simultaneously connected devices as you have devices registered in your identity registry.
94+
For example, if you buy a single S1 unit, you get a throttle of 100 connections/second. Therefore, to connect 100,000 devices, it takes at least 1,000 seconds (approximately 16 minutes). However, you can have as many simultaneously connected devices as you have devices registered in your identity registry (up to 1,000,000).
9495

9596
## Other limits
9697

9798
IoT Hub enforces other operational limits:
9899

99100
| Operation | Limit |
100101
| --------- | ----- |
101-
| Devices | The total number of devices plus modules that can be registered to a single IoT hub is capped at 1,000,000. |
102+
| Device and module identities | The total number of devices plus modules that can be registered to a single IoT hub is capped at 1,000,000. |
102103
| File uploads | 10 concurrent file uploads per device. |
103-
| Jobs<sup>1</sup> | Maximum concurrent jobs are 1 (for Free and S1), 5 (for S2), and 10 (for S3). However, the max concurrent [device import/export jobs](iot-hub-bulk-identity-mgmt.md) is 1 for all tiers. <br/>Job history is retained up to 30 days. |
104-
| Additional endpoints | Basic and standard SKU hubs may have 10 additional endpoints. Free SKU hubs may have one additional endpoint. |
105-
| Message routing queries | Basic and standard SKU hubs may have 100 routing queries. Free SKU hubs may have five routing queries. |
104+
| Jobs<sup>1</sup> | Maximum concurrent jobs are 1 (for free and S1), 5 (for S2), and 10 (for S3). However, the max concurrent [device import/export jobs](iot-hub-bulk-identity-mgmt.md) is 1 for all tiers. <br/>Job history is retained up to 30 days. |
105+
| Additional endpoints | Basic and standard SKU hubs can have 10 additional endpoints. Free SKU hubs can have one additional endpoint. |
106+
| Message routing queries | Basic and standard SKU hubs can have 100 routing queries. Free SKU hubs can have five routing queries. |
106107
| Message enrichments | Basic and standard SKU hubs can have up to 10 message enrichments. Free SKU hubs can have up to two message enrichments.|
107108
| Device-to-cloud messaging | Maximum message size 256 KB |
108-
| Cloud-to-device messaging<sup>1</sup> | Maximum message size 64 KB. Maximum pending messages for delivery is 50 per device. |
109+
| Cloud-to-device messaging<sup>1</sup> | Maximum message size 64 KB. Maximum pending messages for delivery count is 50 per device. |
109110
| Direct method<sup>1</sup> | Maximum direct method payload size is 128 KB for the request and 128 KB for the response. |
110111
| Automatic device and module configurations<sup>1</sup> | 100 configurations per basic or standard SKU hub. 10 configurations per free SKU hub. |
111112
| IoT Edge automatic deployments<sup>1</sup> | 50 modules per deployment. 100 deployments (including layered deployments) per basic or standard SKU hub. 10 deployments per free SKU hub. |
@@ -114,24 +115,20 @@ IoT Hub enforces other operational limits:
114115
| Restrict outbound network access | Maximum number of allowed FQDNs is 20. |
115116
| x509 CA certificates | Maximum number of x509 CA certificates that can be registered on IoT Hub is 25. |
116117

117-
<sup>1</sup>This feature isn't available in the basic tier of IoT Hub. For more information, see [How to choose the right IoT Hub](iot-hub-scaling.md).
118+
<sup>1</sup> This feature isn't available in the basic tier of IoT Hub. For more information, see [How to choose the right IoT Hub](iot-hub-scaling.md).
118119

119-
## Increasing the quota or throttle limit
120+
## Increase the quota or throttle limit
120121

121122
At any given time, you can increase quotas or throttle limits by [increasing the number of provisioned units in an IoT hub](iot-hub-upgrade.md).
122123

123124
## Latency
124125

125126
IoT Hub strives to provide low latency for all operations. However, due to network conditions and other unpredictable factors it can't guarantee a certain latency. When designing your solution, you should:
126127

127-
* Avoid making any assumptions about the maximum latency of any IoT Hub operation.
128+
* Avoid making assumptions about the maximum latency of any IoT Hub operation.
128129
* Provision your IoT hub in the Azure region closest to your devices.
129-
* Consider using Azure IoT Edge to perform latency-sensitive operations on the device or on a gateway close to the device.
130+
* Consider using [Azure IoT Edge](../iot-edge/about-iot-edge.md) to perform latency-sensitive operations on the device or on a gateway close to the device.
130131

131-
Multiple IoT Hub units affect throttling as described previously, but don't provide any additional latency benefits or guarantees.
132+
Adding IoT Hub units affects throttling as described previously, but doesn't provide additional latency benefits or guarantees.
132133

133134
If you see unexpected increases in operation latency, contact [Microsoft Support](https://azure.microsoft.com/support/options/).
134-
135-
## Next steps
136-
137-
For an in-depth discussion of IoT Hub throttling behavior, see the blog post [IoT Hub throttling and you](https://azure.microsoft.com/blog/iot-hub-throttling-and-you/).

0 commit comments

Comments
 (0)