This basically presents an easy to ready table based on VM size selection on the performance of disk and IOPs
Instructions listed here:
Code: Select all
1 - Add a volume The first step is to choose how you will mix individual disks using disk striping (RAID 0) to get the best performance. Each disk doesn't have great throughput but if you stripe a few disks together they you get much more throughput. 2 - Choose caching When you create a disk you can choose the whether to have caching on or not. There are two sets of throttles one for cached and one for uncached disks so creating a volume out of cached or uncached you can get much higher throughput 3 - Know about the local SSD In most instances, you can't change the fact that the local SSD comes from the cache drive so that will take your throughput if you use it (you should use it, it is very fast) 4 - Uncached is slower If you need more throughput than the cached bucket allows then you can use uncached disks to increase the throughput but there is no caching so it will be slower 5 - How does caching work? If you have a cached disk, a cache is on a different part of the local ssd that you can't see. If requests are served from cache then request does not count towards your throughout so you can potentially get even higher than the max but if you are designing an IO system on azure VM's I would make sure you're happy with the performance when nothing is in the cache. 6 - What does max throughput mean? If you push your disks then it is the max throughput before you start getting throttled, you know your application though and will know if you need all the volumes at the same time or maybe you can balance things so you can have different disks busy at different times. 7 - How bad is throttling? Well, it isn't the end of the world, IO requests will take longer if you get throttled for 10 seconds once a day, who cares? if you get throttled every second of every day then maybe do something about it if your app is slow etc.