Post-Image

Crying Over a Pool of Spilt IOPS

You may have the crazy idea that you can move your high performing database server, running on your all-flash SAN, to the cloud and expect it to perform the same for a tenth of the price. Boy, are you in for an awkward moment trying to explain why the migrated server isn’t performing the way you planned or is costing you more.

Use Premium Disk

Premium disks do buy you some improvement over standard HDDs and SSDs, but the disk alone is generally nowhere close to the performance you get from a dedicated SAN.

I/O Limits

With premium disk you have size tiers that also work as performance tiers. Even though they are all cut from the same back-end storage account, smaller disks are slower and bigger ones are faster. On top of that, the bigger disks also respond quicker. You might not need the space of a larger disk, but you will need the higher max I/O per second and lower latency.

Storage Pools

Windows Server now has the ability to create storage pools that mimic a typical RAID configuration. You could just group disk together as one and you would be off to the races… almost. To get any tangible performance instead you will need to forego the safety of parity.

Parity

In the world of on-premises physical RAID, parity is what saves your bacon. Turning off parity is what a crazy person would do, in the world of on premise storage. In the cloud, those disks you are pooling together are abstracted away from the physical realm. There is already a RAID behind your RAID. As far as Microsoft is concerned, losing an Azure disk should not happen. I say should not happen, because anyone, with the means, could detach a disk from a running Virtual Machine and cause you to lose your data.

Again With These Limits

With your expensive pool of premium disks, you will still feel like someone is holding you back. That is because they are. There is a max throughput on the Virtual Machine itself. Increasing the size of your Virtual Machine will increase the combined speed of all those disks.

Storage Optimized Virtual Machines

You would think the storage optimized L series Virtual Machines would get you faster disk for you workload, but you thought wrong. They are optimized to provide improved performance for the temporary storage volume only. In fact, sometimes that series has lower max disk performance then comparable DSv3 series Virtual Machines.

Temporary Storage Disk

The temporary storage disk is much faster then managed disk and should be used whenever possible. The big drawback with it is that any data stored on it is lost when the VM is shutdown, reset, or crashes (that still happens in the cloud). So it should be used for cache data that will be recreated on startup or when needed.

Conclusion

To achieve the best performance, for your performance dependent workload, you would need to determine how much disk performance you need and find the most efficient balance of disk tier, configuration, and Virtual Machine size. Lucky for you, I worked through a lot of that and have a colorful table.

Below is a table of results, I have meticulously collected, covering a wide range of resource options. As these results were collected almost a year ago, things may have changed, but this should give you a good idea of what to try. The prices are not accurate and should only be used for comparing sizes.

Operating System: Windows Server 2016

Configuration: Simple Storage Pool of 3 disks with 3 columns and an NTFS volume.

Testing Tool: Microsoft DiskSpd

Virtual Machine VM LimitDisk Disk LimitMeasured Averages
Series vCPUsMemoryCost/mth Max IO/s Max MB/sTier Size Cost/diskMiBs/disk IO/disk MiB/sIO/s Latancy Deviation
E8s_v3864$694.9612800192P10128GB$27.53100.00500.00103.671658.79154.34127.35
E8s_v3864$694.9612800192P15256GB$53.09125.001100.00127.582041.32125.4923.96
E8s_v3864$694.9612800192P20512GB$102.24150.002300.00127.492039.91125.4923.97
E16s_v316128$1,389.9225600384P10128GB$27.53100.00500.00103.281652.53154.87144.89
E16s_v316128$1,389.9225600384P15256GB$53.09125.001100.00244.183906.9065.5849.18
E16s_v316128$1,389.9225600384P20512GB$102.24150.002300.00254.964079.3462.7419.66
E20s_v320160$1,737.4032000480P15256GB$53.09125.001100.00209.623353.9076.3457.29
E20s_v320160$1,737.4032000480P20512GB$102.24150.002300.00318.845101.4350.205.58
E20s_v320160$1,737.4032000480P301024GB$188.75200.005000.00318.685098.8150.193.44
E32s_v332256$2,779.8451200768P15256GB$53.09125.001100.00209.263348.2176.4359.84
E32s_v332256$2,779.8451200768P20512GB$102.24150.002300.00436.276980.3136.6729.18
E32s_v332256$2,779.8451200768P301024GB$188.75200.005000.00510.028160.2831.3717.53
E32s_v332256$2,779.8451200768P402048GB$361.76250.007500.00726.1911619.0322.0319.07
E64s_v364432$5,050.14800001200P15256GB$53.09125.001100.00209.873357.9576.2152.39
E64s_v364432$5,050.14800001200P20512GB$102.24150.002300.00436.576985.0536.6526.40
E64s_v364432$5,050.14800001200P301024GB$188.75200.005000.00580.189282.8727.5724.68
E64s_v364432$5,050.14800001200P402048GB$361.76250.007500.00717.2211475.5922.3020.86


 

About James MacGowan

James started out as a web developer with an interest in hardware and open sourced software development. He made the switch to IT infrastructure and spent many years with server virtualization, networking, storage, and domain management.
After exhausting all challenges and learning opportunities provided by traditional IT infrastructure and a desire to fully utilize his developer background, he made the switch to cloud computing.
For the last 3 years he has been dedicated to automating and providing secure cloud solutions on AWS and Azure for our clients.

Share This Article

Comments