Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scaling in Windows Azure for IO Performance

Windows Azure advertises three types of IO performance levels:

  • Extra Small : Low
  • Small: Moderate
  • Medium and above: High

So, if I have an IO bound application (rather than CPU or Memory bound) and need at least 6 CPUs to process my work load - will I get better IO performance with 12-15 Extra Smalls, 6 Smalls, or 3 Mediums?

I'm sure this varies based on applications - is there an easy way to go about testing this? Are there any numbers that give a better picture of how much of an IO performance increase you get as you move to large instance roles?

It seems like the IO performance for smaller roles could be equivalent to the larger ones, they are just the ones that get throttled down first if the overall load becomes too great. Does that sound right?

like image 256
Ryan Elkins Avatar asked Jan 21 '23 11:01

Ryan Elkins


2 Answers

Windows Azure compute sizes offer approx. 100Mbps per core. Extra Small instances are much lower, at 5Mbps. See this blog post for more details. If you're IO-bound, the 6-Small setup is going to offer far greater bandwidth than 12 Extra-Smalls.

When you talk about processing your workload, are you working off a queue? If so, multiple worker roles, each being Small instance, could then each work with a 100Mbps pipe. You'd have to do some benchmarking to determine if 3 Mediums gives you enough of a performance boost to justify the larger VM size, knowing that when workload is down, your "idle" cost footprint per hour is now 2 cores (medium, $0.24) vs 1 (small, $0.12).

like image 152
David Makogon Avatar answered Jan 29 '23 12:01

David Makogon


As I understand it, the amount of IO allowed per-core is constant and supposed to be dedicated. But I haven't been able to get formal confirmation of this. This likely is different for x-small instances which operatin in a shared mode and not dedicated like the other Windows Azure vm instances.

like image 42
BrentDaCodeMonkey Avatar answered Jan 29 '23 11:01

BrentDaCodeMonkey