none
How to achieve more than 500 IOPS?

    Question

  • Let's say my database requires up to 0.5 IOPS per GB and I have totally 20 TB. Mathematically I need totally 10,000 IOPS. As far as I know the maximum IOPS per data disk supported is 500. With this, can I archive 10,000 IOPS by merging 20 data disks in a single SQL Server virtual machine?

    Thuan Soldier
    A 23-year-old man loving Microsoft technologies and making crazy ideas on business journey.
    SharePoint Vietnam | Blog | Twitter

    Wednesday, March 30, 2016 11:47 AM

Answers

  • Yes, the method was used extensively by users who deploy high IOPS applications using standard storage disks. However, as I mentioned, Premium Storage is the new recommended solution for IO intensive applications; and, most customers today choose premium storage disks instead of striping of standard storage disks, for high IOPS workload scenarios.
    Sunday, April 3, 2016 5:25 AM

All replies

  • Hello Thuan,

    What is the VM size you are using?

    There is a limitation on how many data disks that can be attached to a VM ( based on the VM size).

    Standard_D14  - Supports 32 data disks  - Max. data disks (1023 GB each)
    Standard_D14_v2 - Supports 32 data disks  - Max. data disks (1023 GB each)
    Standard_D15_v2  - Supports 40 data disks  - Max. data disks (1023 GB each)

    For more information on other VM sizes and data disks limitations, please refer the link below
    https://azure.microsoft.com/en-in/documentation/articles/virtual-machines-linux-sizes/

    You may stripe the data disks using Storage Spaces, you should configure it with one column for each disk that is used. Otherwise, overall performance of the striped volume may be lower than expected due to uneven distribution of traffic across the disks. By default, the Server Manager user interface (UI) allows you to setup columns up to 8 disks. But if you have more than 8 disks, you need to use PowerShell to create the volume and also specify the number of columns manually. Otherwise, the Server Manager UI continues to use 8 columns even though you have more disks.


    We recommend migrating any virtual machine disk requiring high IOPS to Azure Premium Storage for the best performance for your application. If your disk does not require high IOPS, you can limit costs by maintaining it in Standard Storage, which stores virtual machine disk data on Hard Disk Drives (HDDs) instead of SSDs.

    Regards,
    Ajay

    Thursday, March 31, 2016 8:44 AM
    Moderator
  • Thank you Ajay. I already read the Azure storage capability. It would be great if you could share your real-world experience rather than just marketing material that Microsoft published.

    Thuan Soldier


    Thursday, March 31, 2016 9:14 AM
  • 1. Yes, the right method for your scenario would be at attach several disks to get the required combined IOPS. Since the 500 IOPS per disk is a target/upper limit rather than a min-bar. You'd want to use more than 20 disks if you need 10,000 IOPS. You can stripe the disks to create volume(s) with higher IOPS and capacity. You'd need a large VM to be able to attach that many disks. In this case a D14 VM (16 cores), which can attach up to 32 disks. If you use a 8 core VM, that can attach only 16 disks, and will not meet the IOPS or 20 TB requirement.

    2. Having said that, for IO intensive enterprise applications like databases, we strongly recommend use of SSD based Premium Storage disks. You can read more here: https://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage/ In some cases, your cost can be lowered by using Premium Storage because you may be able to use a smaller VM. (That might not be the case for you if you really have 20 TB of actual storage capacity. )

    Thursday, March 31, 2016 6:29 PM
  • Thank you Sirius. If you know my approach is actually used in real-world scenario please let me know. Or point me to any blog post having said.


    Thuan Soldier
    A 23-year-old man loving Microsoft technologies and making crazy ideas on business journey.
    SharePoint Vietnam | Blog | Twitter

    Friday, April 1, 2016 4:08 AM
  • Hello Thuan,

    You may want to check Pierre’s blog below which guides on how to achieve higher IOPS by striping the data disks (As suggested by Sirius).
    http://blogs.technet.com/b/canitpro/archive/2014/11/18/azure-and-disk-iops-and-virtual-machines-in-iaas.aspx

    Hope this helps!

    Regards,
    Ajay

    Saturday, April 2, 2016 9:01 AM
    Moderator
  • Yes, the method was used extensively by users who deploy high IOPS applications using standard storage disks. However, as I mentioned, Premium Storage is the new recommended solution for IO intensive applications; and, most customers today choose premium storage disks instead of striping of standard storage disks, for high IOPS workload scenarios.
    Sunday, April 3, 2016 5:25 AM