SSH File Transfer Protocol (SFTP) performance considerations in Azure Blob storage

Blob storage now supports the SSH File Transfer Protocol (SFTP). This article contains recommendations that will help you to optimize the performance of your storage requests. To learn more about SFTP support for Azure Blob Storage, see SSH File Transfer Protocol (SFTP) support for Azure Blob Storage.

Use concurrent connections to increase throughput

Azure Blob Storage scales linearly until it reaches the maximum storage account egress and ingress limit. Therefore, your applications can achieve higher throughput by using more client connections. To view storage account egress and ingress limits, see Scalability and performance targets for standard storage accounts.

For WinSCP, you can use a maximum of 9 concurrent connections to upload multiple files. Other common SFTP clients such as FileZilla have similar options.

Important

Concurrent uploads will only improve performance when uploading multiple files at the same time. Using multiple connections to upload a single file is not supported.

  • Under the Preferences dialog, under Logging, if the Enable session logging on level is checked, select Reduced or Normal.

Caution

Logging level Debug 1 or Debug 2 significantly reduces session operation performance.

Use premium block blob storage accounts

Azure premium block blob storage account offers consistent low-latency and high transaction rates. The premium block blob storage account can reach maximum bandwidth with fewer threads and clients. For example, with a single client, a premium block blob storage account can achieve 2.3x bandwidth compared to the same setup used with a standard performance general purpose v2 storage account.

Reduce the impact of network latency

Network latency has a large impact on SFTP performance due to its reliance on small messages. By default, most clients use a message size of around 32KB.

  • Increase default message size to achieve better performance

    • For OpenSSH on Windows, you can increase the message size to 100000 with the -B option: sftp -B 100000 testaccount.user1@testaccount.blob.core.windows.net

    • For OpenSSH on Linux, you can increase buffer size to 262000 with the -B option: sftp -B 262000 -R 32 testaccount.user1@testaccount.blob.core.windows.net

  • Make storage requests from a client located in the same region as the storage account

See also