Windows Azure Storage performance benchmark and options

by Dmitry Kirsanov 9. April 2017 02:55

cstJust recently I had to assign a new virtual machine for yet another project, and this presented a perfect opportunity to try the recently introduced feature of Azure storage – the SSD drives.

As you know (and if you don’t – you can read about it here), the type of memory used in SSD drives provides not only faster way to write and read data, but more importantly – to read non-sequential data, hence promising a better performance for database and web caching. But, of course, I had to test it before putting any eggs into that basket.

One thing that raised some suspicion was the IOPS limit mentioned in each virtual machine “size” chart. The “size” of virtual machine, in Azure jargon, is the specs. Usually the name of the “size” consists of the literal and a cipher. The first tells us about the purpose of the machine and the second – how powerful and expensive it is.

I’ve selected the virtual machine that had “SSD 7Gb” on it, wondering what it means. Turned out that it means that you’ll get the temporary drive (the one with contents wiped time after time) with total size of 7Gb, but part of it will be taken by the virtual memory file. Still, you’ll get over 5Gb left and I never needed even that much on a temporary drive.

At first I thought that perhaps the system drive could be on SSD, but no – it’s a simple hard drive of no particular interest. By default, the virtual machine comes without the data drives, and you can attach them later, with maximum number of drives specified in virtual machine “size”. In my case I could add 2 drives and now it asks whether these drives should be normal or SSD, and if SSD – whether they should be normal or premium. The biggest difference, not mentioned in the portal management console, is that premium is about 8 times more expensive. Also, with normal drives you are paying for the space you are actually using, while with premium you are reserving the whole drive for you, and have to select from 3 available sizes. The bigger is the size, the bigger is the price per month, and the price of storage may well exceed the price of the virtual machine itself.

The temporary SSD drive was quite obviously shared and it became clear that every customer is limited to the number of input-output operations per second (IOPS), making the speed difference between the SSD and normal drives insignificant. Except for the situations when you need to access multiple small files or non-sequentially read large files.

After I’ve added the two data drives and made a stripe RAID of them, I used the Crystal Disk Benchmark utility, which is a simple way to measure the drive speed, to find out whether it makes sense to use way more expensive SSD storage.

A word of if not wisdom then experience – before measuring the hard drive in the cloud-based virtual machine, wait for the storage to initialize. You can do it by running a simple test first, then wait a few minutes and then proceed with the actual test. The speed difference will be approximately 20-25%.

I measured the mirrored RAID, striped RAID, the SSD and RAID striped and then formatted with 64K cluster size, as that’s what’s needed for SQL Server.

The test was performed with 50Mb blocks, written in 1 thread (32 queues per thread when queued), with 3 attempts per each read/write.

  Sequential queued read Sequential queued write 4K queued read 4K queued write Sequential read Sequential write 4K read 4K write
SSD

35.26

17.68

35.23

17.57

35.26

17.67

35.24

17.7

Striped raid 42.7 42.7 4 4.1 45.3 48.5 1.28 0.82
Mirrored raid 51.45 25.5 4.1 2.1 47 21.2 0.85 0.79
Striped raid 64K 51.3 51.46 4 4 45.7 47.4 0.74 0.87

As you can see, the SSD performance for sequential read is about 50% lower than of conventional, and presumably more reliable hard drives. The write performance of conventional drives is 150 – 290 % better. That’s up to 3 times slower write with SSD. That should be purely because of the throttling of IOPS, but it is making SSD far less cost-efficient storage in Microsoft Azure. The non-sequential read is much better, of course, leaving the conventional drives far behind, just like it should.

Resume

Personally, I am not going to use SSD drives for anything in Azure environment, as they appear to lack the usual benefits of SSD, while keeping the disadvantages, such as size limitations and questionable reliability. The SSD choice for temporary drive is quite interesting, though, and perhaps worth a few dollars difference it takes. It is expected, that premium storage, where you’ll pay for the lease of an entire drive and therefore won’t be limited in input-output operations, will give better results in terms of speed, but the cost of that would be too premium, comparing to in-house hosting using same SSD drives.

Tags:

blog comments powered by Disqus