Azure Storage Scalability and Performance Targets
This article describes the scalability and performance topics for Azure Storage. For a summary of other Azure limits, see Azure Subscription and Service Limits, Quotas, and Constraints.
All storage accounts run on the new flat network topology and support the scalability and performance targets outlined in this article, regardless of when they were created. For more information on the Azure Storage flat network architecture and on scalability, see Microsoft Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency.
The scalability and performance targets listed here are high-end targets, but are achievable. In all cases, the request rate and bandwidth achieved by your storage account depends upon the size of objects stored, the access patterns utilized, and the type of workload your application performs. Be sure to test your service to determine whether its performance meets your requirements. If possible, avoid sudden spikes in the rate of traffic and ensure that traffic is well-distributed across partitions.
When your application reaches the limit of what a partition can handle for your workload, Azure Storage begins to return error code 503 (Server Busy) or error code 500 (Operation Timeout) responses. If these errors are occurring, then your application should use an exponential backoff policy for retries. The exponential backoff allows the load on the partition to decrease, and to ease out spikes in traffic to that partition.
If the needs of your application exceed the scalability targets of a single storage account, you can build your application to use multiple storage accounts. You can then partition your data objects across those storage accounts. See Azure Storage Pricing for information on volume pricing.
Scalability targets for a storage account
|Number of storage accounts per subscription||2001|
|Max storage account capacity||500 TiB2|
|Max number of blob containers, blobs, file shares, tables, queues, entities, or messages per storage account||No limit|
|Maximum request rate per storage account||20,000 requests per second2|
|Max ingress3 per storage account (US Regions)||10 Gbps if GRS/ZRS4 enabled, 20 Gbps for LRS2|
|Max egress3 per storage account (US Regions)||20 Gbps if RA-GRS/GRS/ZRS4 enabled, 30 Gbps for LRS2|
|Max ingress3 per storage account (Non-US regions)||5 Gbps if GRS/ZRS4 enabled, 10 Gbps for LRS2|
|Max egress3 per storage account (Non-US regions)||10 Gbps if RA-GRS/GRS/ZRS4 enabled, 15 Gbps for LRS2|
1Includes both Standard and Premium storage accounts. If you require more than 200 storage accounts, make a request through Azure Support. The Azure Storage team will review your business case and may approve up to 250 storage accounts.
2 To get your standard storage accounts to grow past the advertised limits in capacity, ingress/egress and request rate, please make a request through Azure Support. The Azure Storage team will review the request and may approve higher limits on a case by case basis.
3 Capped only by the account's ingress/egress limits. Ingress refers to all data (requests) being sent to a storage account. Egress refers to all data (responses) being received from a storage account.
4Azure Storage redundancy options include:
- RA-GRS: Read-access geo-redundant storage. If RA-GRS is enabled, egress targets for the secondary location are identical to those for the primary location.
- GRS: Geo-redundant storage.
- ZRS: Zone-redundant storage. Available only for block blobs.
- LRS: Locally redundant storage.
The following limits apply when performing management operations using the Azure Resource Manager only.
|Storage account management operations (read)||800 per 5 minutes|
|Storage account management operations (write)||200 per hour|
|Storage account management operations (list)||100 per 5 minutes|
Azure Blob storage scale targets
|Max size of single blob container||500 TiB|
|Max number of blocks in a block blob or append blob||50,000 blocks|
|Max size of a block in a block blob||100 MiB|
|Max size of a block blob||50,000 X 100 MiB (approx. 4.75 TiB)|
|Max size of a block in an append blob||4 MiB|
|Max size of an append blob||50,000 x 4 MiB (approx. 195 GiB)|
|Max size of a page blob||8 TiB|
|Max number of stored access policies per blob container||5|
|Target throughput for single blob||Up to 60 MiB per second, or up to 500 requests per second|
Azure Files scale targets
For more information on the scale and performance targets for Azure Files and Azure File Sync, see Azure Files scalability and performance targets.
|Max size of a file share||5 TiB|
|Max size of a file in a file share||1 TiB|
|Max number of files in a file share||No limit|
|Max IOPS per share||1000 IOPS|
|Max number of stored access policies per file share||5|
|Maximum request rate per storage account||20,000 requests per second for files of any valid size3|
|Target throughput for single file share||Up to 60 MiB per second|
|Maximum open handles for per file||2000 open handles|
|Maximum number of share snapshots||200 share snapshots|
Azure File Sync scale targets
|Storage Sync Services per subscription||15 Storage Sync Services||No|
|Sync groups per Storage Sync Service||30 sync groups||Yes|
|Cloud endpoints per Sync Group||1 cloud endpoint||Yes|
|Server endpoints per Sync Group||50 server endpoints||No|
|Server endpoints per server||33-99 server endpoints||Yes, but varies based on configuration|
|Endpoint size||4 TiB||No|
|File system objects (directories and files) per sync group||6 million objects||No|
|File size||100 GiB||No|
|Minimum file size for a file to be tiered||64 KiB||Yes|
Azure Queue storage scale targets
|Max size of single queue||500 TiB|
|Max size of a message in a queue||64 KiB|
|Max number of stored access policies per queue||5|
|Maximum request rate per storage account||20,000 messages per second assuming 1 KiB message size|
|Target throughput for single queue (1 KiB messages)||Up to 2000 messages per second|
Azure Table storage scale targets
|Max size of single table||500 TiB|
|Max size of a table entity||1 MiB|
|Max number of properties in a table entity||252|
|Max number of stored access policies per table||5|
|Maximum request rate per storage account||20,000 transactions per second (assuming 1 KiB entity size)|
|Target throughput for single table partition (1 KiB entities)||Up to 2000 entities per second|