This topic describes the limits on the following features and services of IoT Platform.
Device connection
- Product quantity
Region Description Limit China (Shanghai), Singapore (Singapore), Germany (Frankfurt), US (Silicon Valley), and US (Virginia) The maximum number of products that you can create by using an Alibaba Cloud account. 1,000 Japan (Tokyo) The maximum number of products that you can create for an instance. 1,000 - Device quantityNote If the limit no longer meets your business requirements, submit a ticket to increase the limit.
- The maximum number of devices that can be added to a product.
Region Limit China (Shanghai) 3,000,000 Singapore (Singapore), Germany (Frankfurt), US (Silicon Valley), US (Virginia), and Japan (Tokyo) 1,000,000 Note- To ensure that new devices can be added to a product, we recommend that you configure a threshold alert for the number of devices that you have added to the product. This allows you to obtain the number of existing devices in the product in real time. For more information, see Create a threshold-triggered alert rule.
- If the number of devices exceeds the limit, you must create another product.
- The maximum number of devices that can be added to an instance.
Region Instance Limit China (Shanghai), Singapore (Singapore), Germany (Frankfurt), US (Silicon Valley), and US (Virginia) This limit applies only to public instances because Enterprise Edition instances are unavailable in the regions. You can refer to the limit on the number of devices that you can add by using an Alibaba Cloud account. Japan (Tokyo) Enterprise Edition instances and public instances 1,000,000 Note- For more information about how to purchase an Enterprise Edition instance, see Purchase Enterprise Edition instances.
- If the value that you selected for the device quantity specification of an Enterprise Edition instance that you purchased is less than this limit, you can upgrade the configuration of the instance. For more information, see Upgrade the configuration of an Enterprise Edition instance.
- If the number of devices that you want to create for a public instance of the new version exceeds 500, we recommend that you upgrade the public instance to an Enterprise Edition instance. For more information, see Upgrade to an Enterprise Edition instance..
- The maximum number of devices that you can add by using an Alibaba Cloud account.
Region Limit Japan (Tokyo) None. You can refer to the limit on the number of devices that you can add to an instance. China (Shanghai), Singapore (Singapore), Germany (Frankfurt), US (Silicon Valley), and US (Virginia) 10,000,000
- The maximum number of devices that can be added to a product.
- Gateway sub-device
You can attach up to 1,500 sub-devices to a gateway.
For more information about throttling limits, see the Message communication item in the Connections and communications section.
Device management
Item | Description | Limit |
---|---|---|
Thing Specification Language (TSL) features | The maximum number of TSL modules that can be created for a product, including the default modules and custom modules. | 20 |
The maximum number of features that can be added to a TSL module. | 300 | |
The maximum number of parameters that can be specified for a property of the STRUCT data type. | 50 | |
The maximum number of items that can be specified for a feature of the ENUM data type. | 100 | |
The maximum length that can be specified for a feature of the TEXT data type. | 10,240 characters | |
The maximum number of elements that can be specified for a feature of the ARRAY data type. | 512 | |
The maximum number of input parameters and output parameters that can be added to all services and events. | 300 | |
The maximum number of input parameters that can be added to a service. | 100 | |
The maximum number of output parameters that can be added to a service. | 100 | |
The maximum number of output parameters that can be added to an event. | 100 | |
The maximum number of TSL module files that can be imported at the same time. | 20 | |
The maximum number of latest versions that can be saved for a TSL model. | 10 | |
The maximum size of an imported TSL module in the JSON format. | 512 KB | |
The maximum number of valid characters that can be contained in an imported TSL module
in the JSON format.
Valid characters do not include line feeds and alignment characters. |
256 KB | |
The maximum size of a ZIP file that can be obtained by compressing multiple JSON-formatted files when you import a TSL model. | 2.5 MB | |
The maximum number of recursive nesting levels that are supported if you nest the
ARRAY and STRUCT data types for the ThingModelJson parameter when you call TSL-related operations.
For example, you can nest data of the STRUCT type only in data of the ARRAY type. The data of the STRUCT type cannot contain data of the ARRAY or STRUCT type. |
2 | |
Tags | The maximum number of tags that can be attached to a product, device, or device group. | 100 |
Device groups | The maximum number of groups and sub-groups that each Alibaba Cloud account can create. | 1,000 |
The maximum number of devices that can be added to a group. | 100,000 | |
The maximum number of groups to which a device can be added. | 10 | |
Data parsing | The maximum size of a data parsing script. | 128 KB |
Remote configuration | The maximum size of a remote configuration file. Remote configuration files support only the JSON format. | 64 KB |
Data retention period | The maximum number of days for which property data, event data, and service data can be retained. Data is deleted after the retention period ends. | 30 |
File management | The maximum size of files that can be stored in an instance. | 1 GB |
The maximum size of a single file that can be uploaded by a device over MQTT. | 16 MB | |
The maximum number of files that can be stored on a device. | 1,000 | |
OTA update | The maximum number of update packages that can be uploaded in an instance under each Alibaba Cloud account. | 500 |
The maximum size of an update package. | 2,000 MB | |
The maximum number of devices that can be specified for a batch update. | 100,000 | |
Device jobs | The maximum number of device jobs that each Alibaba Cloud account can add in a single region. | 10,000 |
Connections and communications
Item | Description | Limit |
---|---|---|
Device connection | The maximum number of connections that can be established with IoT Platform by using the same device certificate information. The device certificate information includes the ProductKey and DeviceName parameters. | 1 |
Connections | The maximum number of MQTT connection requests that each Alibaba Cloud account can initiate per second. | 500 |
The maximum number of connection requests that a device can send per minute without being throttled. | 5 | |
Device subscription | The maximum number of topics to which a device can subscribe.
After the limit is reached, new subscription requests are rejected. The device can check whether a subscription request succeeds by verifying the SUBACK message. |
100 |
Requests | The maximum number of requests that the devices of an Alibaba Cloud account can send to IoT Platform per second. | 10,000 |
The maximum number of requests that IoT Platform can send to the devices of an Alibaba Cloud account per second. | 2,000 | |
Message communication | The maximum number of messages that a device can send to IoT Platform per second.
Note If you use the MQTT protocol to publish messages, no throttling information is returned.
You can view device logs to find the devices whose messages are blocked due to throttling.
|
|
The maximum number of messages that a device can receive per second. The limit changes
based on the network environment.
If the maximum TCP write buffer size is exceeded, an error message is returned. If IoT Platform uses the Pub API operation to send requests to a device and the device cannot process the requests in a timely manner, a throttling error message is returned. |
50 messages per second | |
Bandwidth | The maximum throughput (bandwidth) per connection. | 8 Mbps |
Cached requests | The maximum number of unacknowledged message publishing requests from a device.
After the limit is reached, IoT Platform rejects new message publishing requests from the device until a PUBACK message is received. |
100 |
Message retention period | The maximum number of days for which a QoS 1 message can be retained.
If no PUBACK message is received before the maximum retention period ends, the message publishing request is rejected. |
7 |
MQTT message size | The maximum size of a message that can be sent over MQTT. Messages whose size exceeds this limit are discarded. | 256 KB |
CoAP message size | The maximum size of a message that can be sent over CoAP. Messages whose size exceeds this limit are discarded. | 1 KB |
MQTT keep-alive mechanism | The heartbeat interval for an MQTT connection ranges from 30 to 1,200 seconds. If
a heartbeat interval is out of the specified value range, the server rejects the connection
request.
We recommend that you specify a value that is greater than 300 seconds. Default value: 1200. Unit: seconds. For more information about how to specify a keep-alive period for a device, see Connection over MQTT examples. A timer starts when IoT Platform sends a CONNACK message as a response to a CONNECT message. When IoT Platform receives a PUBLISH, SUBSCRIBE, PING, or PUBACK message, the timer is reset. If no message is received during a period of time that is 1.5 times the specified heartbeat interval, the server terminates the connection. |
30 to 1,200 seconds |
RRPC timeout period | The timeout period during which devices must respond to RRPC requests. | 8 seconds |
MQTT 5.0 protocol | The maximum number of custom properties that can be added. | 20 |
The maximum length of a custom property key or custom property value. | 128 characters | |
The maximum length of the ResponseTopic parameter or CorrelationData parameter that can be configured in the request/response communication mode. | 128 characters |
Topics
Item | Description | Limit |
---|---|---|
Custom topic categories | The maximum number of topic categories that you can define for a product. | 50 |
Permissions | A device can publish messages and subscribe only to the topics that are associated with the device. | None |
Topic length | The maximum length of a topic that is encoded in UTF-8. | 128 bytes |
Topic levels | The maximum number of category levels that can be included in a topic. The number of category levels is equal to the number of slashes (/) in the topic. | 7 |
Subscriptions | The maximum number of topics that can be included in a subscription request. | 8 |
Time to take effect | The period that a subscribe operation or unsubscribe operation requires to take effect.
A subscription remains valid until you unsubscribe from the topic. We recommend that
you subscribe to topics in advance to prevent information missing.
For example, a device sends a subscription request to Topic A. After 10 seconds, the subscription takes effect and the device starts to receive messages from Topic A in real time. The device continues to receive messages from Topic A until you unsubscribe from the topic. |
10 seconds |
Message broadcasting | The maximum size of a message that can be broadcasted.
To generate a message body, you must convert a raw message into binary data and encode the data by using Base64. |
64 KB |
The number of messages that can be broadcasted per minute by using the server SDK. | 1 |
Device shadows
Item | Description | Limit |
---|---|---|
JSON levels | The maximum number of levels that can be included in the JSON file of a device shadow. | 5 |
File size | The maximum size of a device shadow JSON file. | 16 KB |
Properties | The maximum number of properties that can be specified in a device shadow JSON file. | 128 |
QPS | The maximum number of requests that a device can send per second. | 20 |
Data forwarding (previous version)
Item | Description | Limit |
---|---|---|
Rules | The maximum number of rules that each Alibaba Cloud account can create. | 1,000 |
Data forwarding destinations | The maximum number of data forwarding actions that you can specify in a rule. | 10 |
Messages processed by the rules engine | The maximum number of data forwarding queries that can be processed per second for
an Alibaba Cloud account. The RAM users of an Alibaba Cloud account share the quota
of the Alibaba Cloud account.
After a message is processed, it can be written to multiple Alibaba Cloud services. For more information, see the next item: Messages written to Alibaba Cloud services. If a message is blocked due to throttling, IoT Platform retries to process the message. If multiple retries fail, the message is discarded. |
1,000 TPS |
Messages written to Alibaba Cloud services |
The maximum number of data forwarding queries that can be processed per second for an Alibaba Cloud account. The maximum number can be reached only if the instance of an Alibaba Cloud service provides a high level of performance. The RAM users of an Alibaba Cloud account share the quota of the Alibaba Cloud account. If the limit is exceeded or if the number of concurrent write requests to an Alibaba Cloud service exceeds 40, data forwarding fails due to throttling. If a destination service such as Message Queue for Apache RocketMQ, ApsaraDB RDS, or ApsaraDB for Lindorm is unavailable due to the resource changes of the service, IoT Platform stops forwarding messages and displays the abnormal rule. If an error occurs due to another cause when you send a message, IoT Platform retries three times at the intervals of 1, 3, and 10 seconds. If all retries fail, the message is discarded and an error message is sent to the destination cloud service. |
2,000 TPS |
Requirements of data forwarding destinations | Make sure that the instance of a destination cloud service runs as expected. Data forwarding fails in multiple scenarios. These scenarios include instance failure, overdue payments, improper configurations, and invalid parameter settings, such as invalid values and lack of permissions. | None |
Message deduplication | When you forward a message, the message may be repeatedly sent until the client returns an ACK message or the message expires. If multiple messages use the same message ID, you can deduplicate the messages based on the ID. | None |
Data forwarding (new version)
The limits on the messages related to Data forwarding (previous version) are the same as the limits on the messages related to data forwarding (new version).
Item | Description | Limit |
---|---|---|
Parser | The maximum number of parsers that an instance can contain. | 1,000 |
Data Sources | The maximum number of data sources that can be associated with a parser. | 1 |
The maximum number of topics that a data source can contain. | 1,000 | |
Data destination | The maximum number of data destinations that can be associated with a parser. | 10 |
The maximum number of operations that a data destination can contain. | 1 | |
The maximum number of error data destinations that can be associated with a parser. | 1 | |
Parser script | The maximum size of a parser script. | 120 KB |
The maximum number of times that a data forwarding function can be executed in a loop
in a parser script.
For more information about data forwarding functions, see Forward data to destinations. |
100 |
Server-side subscription
The following table describes the limits on AMQP server-side subscription.
Item | Description |
---|---|
Authentication timeout | An authentication request is sent after a connection is established. If the authentication fails within 15 seconds, the server ends the connection. |
Data timeout | When a server establishes a connection with IoT Platform, the heartbeat timeout period
(the idle-timeout parameter in AMQP) must be specified. The timeout period ranges
from 30 to 300 seconds. If no frame is transmitted within the heartbeat timeout period,
IoT Platform ends the connection.
After the connection is established, the server must send ping packets within the
heartbeat timeout period to maintain the connection. Otherwise, IoT Platform ends
the connection.
Note If the connection is established by using an Alibaba Cloud SDK, the server does not
need to send ping packets to maintain the connection. During the keep-alive time that
is provided by the SDK, make sure that the main process does not exit.
|
Policy for message pushing retries |
Messages may not be consumed in real time due to some issues. In this case, these messages are accumulated. These issues include that consumers disconnect from IoT Platform and the speed at which these messages are consumed is slow.
|
Maximum number of saved messages | Each consumer group can retain a maximum of 100 million messages. |
Message retention period | One day. |
Maximum push rate for real-time messages | Each connection can be used to process a maximum of 1,000 transactions per second (TPS). A maximum of 64 connections can be established. |
Maximum push rate for accumulated messages | A consumer group can process a maximum of 200 TPS.
Note To prevent a large number of accumulated messages, make sure that consumers are connected
to IoT Platform. You must also make sure that these consumers send ACK responses to
messages that are pushed by IoT Platform.
|
Maximum number of consumer groups with which a product can be associated | 10. |
Maximum number of products with which a consumer group can be associated | 1,000. |
Maximum number of consumer groups | Each Alibaba Cloud account can create a maximum of 1,000 consumer groups. |
Maximum number of consumers | Each consumer group can have a maximum of 64 consumers. |
Maximum connection requests | Each consumer can initiate a maximum of 100 connection requests within 1 minute.
Note Consumers indicate AMQP clients that are used to receive IoT Platform messages. These
consumers are not devices.
|
For more information about the limits on Message Service (MNS) server-side subscription, see the limits on MNS queues in MNS limits.
Cloud API operations
The maximum number of queries per second (QPS) for the IoT Platform API. For more information, see List of API operations by function.
If a throttling error message is returned when you call an operation, retry to call the operation.For more information about throttling errors, see Type 29 to 31 in common errors.