Azure IO Performance

By | August 18, 2015

Cloud services are getting more and more mature. Before it was only a buzz but now everyone wants to get on the train. Flexibility, availability, pricing. So you are thinking about moving that database, datawarehouse or cubes to the cloud? On the Azure pricing list you can clearly see the number of CPU’s, memory, storage etc. What about the underlying disk system? This can be a rather important factor to look up if you have disk intensive ETL (Extract Transform Load) processes or other disk intensive tasks that you intend to move to Azure. How is Azure IO Performance? What is the difference between tiers, A, D and G series? I got a little bit curious and did some quick tests with HDtune on the following virtual machine configurations:

  • Basic Tier, A2 (2 cores, 3,5gb ram, North Europe)
  • Standard Tier, A2 (2 cores, 3,5gb ram, Central US)
  • Standard Tier, D2 (2 cores, 7gb ram, Central US)
  • Standard Tier, G2 (4 cores, 56gb ram, East US 2)

All are virtual machines (VM’s) with Windows 2012 R2 DataCenter default image. Please note that there are heaps of configurations and scenarios to consider for services in Azure. The intention of this post is not to be in anyhow any complete cover for that – just a quick test of disk performance in Azure VM’s. 

Contents

Basic Tier, A2 (2 cores, 3,5gb ram, North Europe)

Azure Basic Tier A2

Standard Tier, A2 (2 cores, 3,5gb ram, Central US)

Azure Standard Tier A2

Standard Tier, D2 (2 cores, 7gb ram, Central US)

Azure Standard Tier D2

Standard Tier, G2 (4 cores, 56gb ram, East US 2)

Azure Standard Tier G2

My laptop

For fun I will include my laptop, a Macbook Pro Core i5-3210m, 16gb, Samsung SSD 840 EVO 500 GB.

My Laptop IO

Conclusion

It seems as if my laptop still outperform most of the Azure VM options. However cloud services are constantly improving so there is probably likely to see faster alternatives in the near future. Also note that the test might not be completely accurate since I only run the tests once on each VM. However concerning the services available it’s important not only to look at the price and the more common specs like CPU, RAM, Disk Size etc. For more information on Azure subscription limits you may want to have a look here:

https://azure.microsoft.com/sv-se/documentation/articles/azure-subscription-service-limits/

Here you can see that the target IOPS for Azure is 300 for Basic Tier and 500 for Standard Tier:

Max 8 KB IOPS per persistent disk (Basic Tier virtual machine) 3002
Max 8 KB IOPS per persistent disk (Standard Tier virtual machine) 5002
Total Request Rate (assuming 1KB object size) per storage account Up to 20,000 IOPS, entities per second, or messages per second
Target Throughput for Single Blob Up to 60 MB per second, or up to 500 requests per second
Target Throughput for Single Queue (1 KB messages) Up to 2000 messages per second
Target Throughput for Single Table Partition (1 KB entities) Up to 2000 entities per second
Target Throughput for Single File Share (Preview) Up to 60 MB per second

 

You may also configure multiple disks and stripe them in order to to improve performance as described here:

http://blogs.technet.com/b/canitpro/archive/2014/11/18/azure-and-disk-iops-and-virtual-machines-in-iaas.aspx

For data warehouse solutions the recent launched service for SQL Data Warehous “elastic data warehouse-as-a-service” might be of interest:

http://azure.microsoft.com/en-us/services/sql-data-warehouse/

 

 

One thought on “Azure IO Performance

  1. Cristian Pereyra

    Are you measuring d2 and g2 ok? D vms have local SSDs which are not networked, they should have much better performance than A2, at least I saw a big difference between the SSD mount in the D machines compared to the other, storage based mount.

Leave a Reply