Azure Performance Benchmarks

The purpose of this review is to analyze the performance of the Microsoft Azure cloud storage for different types of upload, download, disk space analysis, file search and file delete operations. In addition, this review tests the performance impact of accessing data stored in three different geographical locations and analyzes the multi-threaded scalability of upload, download, disk space analysis, file search and file delete operations.

For the purpose of this performance review, we have created three different Azure cloud storage accounts in the following physical locations: East US, Central US and West Europe. All three storage accounts were loaded with the following identical data sets:

  • File Set #1 - 100,000 small files (1 GB in total)
  • File Set #2 - 1,000 medium-sized files ( 1 GB in total)
  • File Set #3 - 100 large files (1GB in total)

All tests were performed on an Azure virtual machine - A2 Standard, Dual-Core, 3.5 GB of system memory - running the Windows Server operating system and physically located in the Microsoft East US Azure data center. Exactly the same benchmarks were performed from the same virtual machine against each of the three Azure storage accounts using the Azure Data Expert utility, which is capable of performing different types of data transfer, file upload, file download, disk space analysis, file classification, file search and file delete operations via the Azure REST API.

File Upload Performance

When uploading a mixed set of files to an Azure storage account located in the same data center, the average performance of upload operations starts at approximately 35 Mbps for a single upload operation and scales up to 172 Mbps for 8 parallel upload operations. When uploading files from an East US data center to an Azure storage account located in a Central US data center, the average performance of data upload operations starts at 18 Mbps and scales up to 115 Mbps for 8 parallel file upload operations.

Azure Cloud Storage File Upload Performance

Finally, when uploading files from an East US data center to an Azure storage account located in a West Europe data center, the average performance of data upload operations starts at 11.5 Mbps and scales up to 55 Mbps for 8 parallel file upload operations.

Azure Cloud Storage File Upload Performance East US

As it is clear from the results, the performance of file upload operations highly depends on the size of uploaded files. For example, when uploading large files to an Azure storage account located in the same data center, the performance of upload operations scales up to 276 Mbps, while for small files the upload performance scales only up to 83 Mbps.

Azure Cloud Storage File Upload Performance Central US

When uploading files to the second Azure storage account located in Central US, the upload performance slightly drops for large files (up to 272 Mbps) and more significantly for small files (28 Mbps). The higher performance drop for small files is most likely attributed to a higher network latency, which depends on the distance between data centers. When uploading files from the East US data center, were the test virtual machine was hosted, to the third Azure storage account located in West Europe, the upload performance drops significantly and reaches up to 123 Mbps for large files and up to 16 Mbps for small files.

Azure Cloud Storage File Upload Performance West Europe

In order to analyze the multi-threaded performance scalability of the data upload operations, we have performed all tests using 1, 2, 4, 6 and 8 parallel data upload threads and then calculated a combined performance improvement factor for all data sets and averaged these performance improvement factors for all three Azure storage accounts. According our analysis, the multi-threaded data upload performance improvement factor reaches up to 4.4 when uploading 6 files in parallel and 5.31 when uploading 8 files in parallel.

Azure Cloud Storage Multi-Threadded File Upload Performance

Despite the fact that all tests were performed on a dual-core virtual machine, performance improvements of multi-threaded data upload operations continued to scale-up very well up to 8 parallel data upload operations showing a high level of multi-threaded scalability provided by the Microsoft Azure cloud storage and virtual machines, which may be even more scalable on a virtual machine with more CPU cores.

File Download Performance

When downloading files from an Azure storage account located in the same data center, the average performance of download operations starts at approximately 71 Mbps for a single download operation and scales up to 177 Mbps for 8 parallel upload operations. When downloading files from an Azure storage account located in a Central US data center, the average performance of file download operations starts at 24 Mbps and scales up to 106 Mbps for 8 parallel file download operations.

Azure Cloud Storage File Download Performance

Finally, when downloading files from an Azure storage account located in a West Europe data center, the average performance of file download operations starts at 15 Mbps and scales up to 88 Mbps for 8 parallel file download operations.

Azure Cloud Storage File Download Performance East US

The performance of file download operations significantly depends on the size of downloaded files. For example, when downloading large files from an Azure storage account located in the same data center, the performance of file download operations scales up to 264 Mbps, while for small files the download performance scales only up to 88 Mbps.

Azure Cloud Storage File Download Performance Central US

When downloading files from the second Azure storage account, which is located in Central US, the file download performance significantly drops for large and medium-sized files (up to 150 Mbps) and even more significantly for small files (16 Mbps). The higher performance drop for small files is most likely attributed to a higher network latency, which depends on the distance between data centers. When downloading files from the third Azure storage account, which is located in West Europe, the file download performance drops significantly and reaches up to 140 Mbps for large files and up to 13 Mbps for small files.

Azure Cloud Storage File Download Performance West Europe

In order to analyze the multi-threaded performance scalability of the file download operations, we have performed all tests using 1, 2, 4, 6 and 8 parallel file download threads and then calculated a combined performance improvement factor for all data sets and averaged these performance improvement factors for all three Azure storage accounts. According our analysis, the multi-threaded file download performance improvemen factor reaches up to 1.72 when downloading 2 files in parallel, 2.38 when downloading 4 files in parallel and 3.36 when downloading 8 files in parallel.

Azure Cloud Storage Multi-Threadded File Download Performance

In our specific tests, the multi-threaded scalability of file download operations is less effective than the scalability of file upload operations, but it is still important to perform a number of parallel file download operations in order to reach a high download speed especially when downloading a large number of small files. Probably, the reduced multi-threaded scalability is related to the fact that all tests were performed on a dual-core virtual machine, but performance improvements of multi-threaded file download operations continued to scale up to 8 parallel file download operations. In order to better understand the nature of the reduced scalability of file download operations, we will perform the same set of tests on a quad-core virtual machine and update the review as soon as the results will be available.

Performance of Analysis and File Search Operations

In addition to the data upload and download operations, we have performed a number of disk space analysis, file classification and file search operations. All the file search and analysis operations were performed on an identical set of 100,000 files stored in a number of storage containers in all three Azure storage accounts. Performance results from all types of analysis and file search operations were combined and averaged.

Azure Cloud Storage Disk Analysis Performance

According to the performance results, when analyzing or searching files stored in an Azure storage account located in the same data center, file search and analysis operations can reach up to 8,700 Files/Sec using 8 parallel threads. When analyzing or searching files located in a different data center, the speed of file search or analysis operations can reach up to 1,500...4,000 Files/Sec depending on the distance to the data center and the number of parallel processing threads.

Azure Cloud Storage Multi-Threaded Analysis Scalability

In our specific tests, the multi-threaded performance of the file search and analysis operations scales well up to 6 processing threads. Probably, the reduced multi-threaded scalability is related to the fact that all tests were performed on a dual-core virtual machine, but performance improvement of multi-threaded file search and analysis operations continued to scale well up to 6 parallel analysis operations. In order to better understand the nature of the reduced scalability of file search and analysis operations, we will perform the same set of tests on a quad-core virtual machine and update the review as soon as the results will be available.

Performance of File Delete Operations

Finally, we have tested the performance and the multi-threaded performance scalability of file delete operations using a set of small files. The file delete benchmark was performed using an identical set of 10,000 files stored in all three Azure storage accounts. According to our performance results, when deleting files from an Azure storage account located in the same data center, the file delete operation can reach up to 75 Files/Sec when deleting files using 1 processing thread and the performance scales up very well to 460 Files/Sec when deleting files using 8 parallel processing threads.

Azure Cloud Storage File Delete Performance

When deleting files from an Azure storage account located in a different data center, the performance of file delete operations drops very significantly. For example, when deleting files from a storage account located in Central US, the performance of the delete operation reaches up to 17 Files/Sec using 1 processing thread and scales up to 148 Files/Sec when deleting files using 8 parallel processing threads. For the third storage account, which is located in West Europe, the performance drop was even more significant, which should be attributed to a significantly higher network latency between the data centers.

Azure Cloud Storage Multi-Threaded File Delete Scalability

From the multi-threaded performance scalability point of view, file delete operations perform very well and the performance scaling factor reaches up to 3.76 when deleting files using 4 parallel threads, up to 5.01 when deleting files using 6 parallel processing threads and up to 7.01 when deleting files using 8 parallel processing threads. According to our specific tests, the performance of file delete operations is bounded by the network latency and in order to be able to effectively delete large numbers of files, the file delete operation should be performed using a large number of parallel processing threads, especially when deleting files stored in a different Azure storage account.