Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 4.69 KB

File metadata and controls

45 lines (36 loc) · 4.69 KB
title Performance checklist for developers (Azure Blob Storage)
titleSuffix Azure Storage
description Essential performance optimization checklist for developers building custom applications with Azure Blob Storage. Learn proven practices for parallel transfers, retry policies, server-side operations, caching, and batch uploads to maximize throughput and reduce latency.
services storage
author normesta
ms.service azure-blob-storage
ms.topic concept-article
ms.date 11/19/2025
ms.author normesta

Performance checklist for Blob Storage developers

Use this checklist to reduce latency, increase throughput, and align with Azure Storage scale and performance targets. Azure Storage uses the term targets rather than limits because some values can be increased upon request. When clients approach or exceed these targets, Azure Storage might throttle requests, which increases latency. Use the checklist in this article to align with targets without sacrificing performance.

Note

This article applies only to custom applications. For recommendations that apply to all clients, review the Performance checklist for Blob Storage.

Performance checklist

[!div class="checklist"]

  • Use Azure Storage client libraries: For best performance, use Microsoft client libraries. These libraries are optimized for performance, kept current with service versions, and handle proven performance practices internally.

  • Optimize parallel block transfers: Increase parallel transfers with smaller block sizes, but maintain sizes above 4 MiB (standard) or 256 KiB (premium) to activate high-throughput block blobs. Balance parallelism to avoid exceeding device capabilities or storage targets, which causes throttling. Set appropriate limits on concurrent requests. See performance guidance for .NET, Java, JavaScript, Python, and Go.

  • Use an exponential backoff retry policy: Handle transient errors with exponential backoff policies. For example, retry after 2, 4, 10, 30 seconds, then stop. This policy prevents excessive retries for non-transient errors such as those that occur when your application approaches or exceeds performance and scale targets. Client libraries know which errors to retry and which ones not to retry. To apply a retry policy, see the retry guidance for .NET, Java, JavaScript, Python, and Go.

  • Use server-to-server APIs to copy between containers and accounts: Use Put Block From URL to copy data between accounts and to copy data within an account. Server-side operations reduce bandwidth since you don't need to download and then upload data. See the copy guidance for .NET, Java, JavaScript, Python, and Go.

  • Cache data to improve performance: Cache frequently accessed or rarely changed data such as configuration and lookup data. Use conditional headers with GET operations to retrieve blobs only if modified since last cached. For more information, see Specifying conditional headers for Blob service operations.

  • Upload data in batches: Aggregate data before uploading instead of uploading immediately. For example, save log entries locally and upload periodically as a single blob rather than uploading each entry individually.

Next steps