Skip to content

Latest commit

 

History

History
135 lines (98 loc) · 10.3 KB

iot-hub-scaling.md

File metadata and controls

135 lines (98 loc) · 10.3 KB
title description author manager ms.service services ms.topic ms.date ms.author
Azure IoT Hub scaling | Microsoft Docs
How to scale your IoT hub to support your anticipated message throughput and desired features. Includes a summary of the supported throughput for each tier and options for sharding.
wesmc7777
timlt
iot-hub
iot-hub
conceptual
04/02/2018
wesmc

Choose the right IoT Hub tier for your solution

Every IoT solution is different, so Azure IoT Hub offers several options based on pricing and scale. This article is meant to help you evaluate your IoT Hub needs. For pricing information about IoT Hub tiers, see IoT Hub pricing.

To decide which IoT Hub tier is right for your solution, ask yourself two questions:

What features do I plan to use? Azure IoT Hub offers two tiers, basic and standard, that differ in the number of features they support. If your IoT solution is based around collecting data from devices and analyzing it centrally, then the basic tier is probably right for you. If you want to use more advanced configurations to control IoT devices remotely or distribute some of your workloads onto the devices themselves, then you should consider the standard tier. For a detailed breakdown of which features are included in each tier continue to Basic and standard tiers.

How much data do I plan to move daily? Each IoT Hub tier is available in three sizes, based around how much data throughput they can handle in any given day. These sizes are numerically identified as 1, 2, and 3. For example, each unit of a level 1 IoT hub can handle 400 thousand messages a day, while a level 3 unit can handle 300 million. For more details about the data guidelines, continue to Message throughput.

Basic and standard tiers

The standard tier of IoT Hub enables all features, and is required for any IoT solutions that want to make use of the bi-directional communication capabilities. The basic tier enables a subset of the features and is intended for IoT solutions that only need uni-directional communication from devices to the cloud. Both tiers offer the same security and authentication features.

Only one type of edition within a tier can be chosen per IoT Hub. For example, you can create an IoT Hub with multiple units of S1, but not with a mix of units from different editions, such as S1 and B3, or S1 and S2.

Capability Basic tier Standard tier
Device-to-cloud telemetry Yes Yes
Per-device identity Yes Yes
Message routing and Event Grid integration Yes Yes
HTTP, AMQP, and MQTT protocols Yes Yes
Device Provisioning Service Yes Yes
Monitoring and diagnostics Yes Yes
Cloud-to-device messaging Yes
Device twins, Module twins, and Device management Yes
Azure IoT Edge Yes

IoT Hub also offers a free tier that is meant for testing and evaluation. It has all the capabilities of the standard tier, but limited messaging allowances. You cannot upgrade from the free tier to either basic or standard.

Partitions

Azure IoT Hubs contain many core components of Azure Event Hubs, including Partitions. Event streams for IoT Hubs are generally populated with incoming telemetry data that is reported by various IoT devices. The partitioning of the event stream is used to reduce contentions that occur when concurrently reading and writing to event streams.

The partition limit is chosen when IoT Hub is created, and cannot be changed. The maximum partition limit for basic tier IoT Hubs is 8, and for standard tier the maximum is 32. Most IoT hubs only need 4 partitions. For more information on determining the partitions, see the Event Hubs FAQ How many partitions do I need?

Tier upgrade

Once you create your IoT hub, you can upgrade from the basic tier to the standard tier without interrupting your existing operations. For more information, see How to upgrade your IoT hub.

The partition configuration remains unchanged when you migrate from basic tier to standard tier.

IoT Hub REST APIs

The difference in supported capabilities between the basic and standard tiers of IoT Hub means that some API calls do not work with basic tier hubs. The following table shows which APIs are available:

API Basic tier Standard tier
Delete device Yes Yes
Get device Yes Yes
Delete module Yes Yes
Get module Yes Yes
Get registry statistics Yes Yes
Get services statistics Yes Yes
Create Or Update Device Yes Yes
Put module Yes Yes
Query IoT Hub Yes Yes
Query modules Yes Yes
Create file upload SAS URI Yes Yes
Receive device bound notification Yes Yes
Send device event Yes Yes
Send module event Yes Yes
Update file upload status Yes Yes
Bulk device operation Yes, except for IoT Edge capabilities Yes
Purge command queue Yes
Get device twin Yes
Get module twin Yes
Invoke device method Yes
Update device twin Yes
Update module twin Yes
Abandon device bound notification Yes
Complete device bound notification Yes
Cancel job Yes
Create job Yes
Get job Yes
Query jobs Yes

Message throughput

The best way to size an IoT Hub solution is to evaluate the traffic on a per-unit basis. In particular, consider the required peak throughput for the following categories of operations:

  • Device-to-cloud messages
  • Cloud-to-device messages
  • Identity registry operations

Traffic is measured on a per-unit basis, not per hub. A level 1 or 2 IoT Hub instance can have as many as 200 units associated with it. A level 3 IoT Hub instance can have up to 10 units. Once you create your IoT hub you can change the number of units or move between the 1, 2, and 3 sizes within a specific tier without interrupting your existing operations. For more information, see How to upgrade your IoT Hub.

As an example of each tier's traffic capabilities, device-to-cloud messages follow these sustained throughput guidelines:

Tier Sustained throughput Sustained send rate
B1, S1 Up to 1111 KB/minute per unit
(1.5 GB/day/unit)
Average of 278 messages/minute per unit
(400,000 messages/day per unit)
B2, S2 Up to 16 MB/minute per unit
(22.8 GB/day/unit)
Average of 4,167 messages/minute per unit
(6 million messages/day per unit)
B3, S3 Up to 814 MB/minute per unit
(1144.4 GB/day/unit)
Average of 208,333 messages/minute per unit
(300 million messages/day per unit)

In addition to this throughput information, see IoT Hub quotas and throttles and design your solution accordingly.

Identity registry operation throughput

IoT Hub identity registry operations are not supposed to be run-time operations, as they are mostly related to device provisioning.

For specific burst performance numbers, see IoT Hub quotas and throttles.

Auto-scale

If you are approaching the allowed message limit on your IoT Hub, you can use these steps to automatically scale to increment an IoT Hub unit in the same IoT Hub tier.

Sharding

While a single IoT hub can scale to millions of devices, sometimes your solution requires specific performance characteristics that a single IoT hub cannot guarantee. In that case, you can partition your devices across multiple IoT hubs. Multiple IoT hubs smooth traffic bursts and obtain the required throughput or operation rates that are required.

Next steps