缩放Windows Azure中的IO性能

问题描述:

Windows Azure的发布三种类型的IO性能水平:缩放Windows Azure中的IO性能

  • 超小:低
  • 小:中等
  • 中等及以上的高

因此,如果我有一个IO绑定应用程序(而不是CPU或内存绑定)并且需要至少6个CPU来处理我的工作负载 - 我是否能通过12-15个额外的Smalls,6个Smalls或3个Medium获得更好的IO性能?

我敢肯定,这取决于应用程序 - 有没有简单的方法去测试这个?是否有任何数字可以更好地了解您在转移到大型实例角色时获得的IO性能提升幅度?

看来小型角色的IO性能可能相当于较大型的角色,但它们只是在整体负载变得太大时才首先受到限制。这听起来是对的吗?

Windows Azure计算大小提供约。每个核心100Mbps。额外的小型实例要低得多,达到5Mbps。有关更多详细信息,请参阅this blog post。如果你是IO绑定的,6-Small设置将提供比12个Extra-Smalls更大的带宽。

当您谈论处理您的工作量时,您是否正在排队?如果是这样,那么多个工作者角色(每个角色都是Small实例)都可以使用100Mbps管道工作。你需要做一些基准测试,以确定3种介质是否足够提升性能以证明较大的VM大小,并知道当工作负载下降时,每小时“闲置”的成本足迹现在为2个核心(中等,0.24美元)vs 1(小,$ 0.12)。

+0

是的,我们正在排队工作。我们现在并行执行大量表格存储操作。我们必须进行大量测试才能了解如何限制这些操作以避免造成问题。 – 2011-02-17 19:57:06

据我所知,每个内核允许的IO数量是不变的,应该是专用的。但是我一直无法得到这个正式的确认。对于在共享模式下操作并且不像其他Windows Azure虚拟机实例那样专用的x小型实例,这可能会有所不同。

+0

是的,根据David的链接,它看起来像是100 Mbps /核心,除了XSmall是5 Mbps – 2011-02-17 21:04:21

我想象你怀疑的事实上是真的,甚至是IO绑定因应用而异。我认为你可以通过使用计时器来完成你的计时目标,并将输出写入存储器中的文件然后你可以检索。做一些数学计算,你可以通过尽可能小的中等情况尽可能多地处理X个工作单位/小时。如果您的工作单位大小剧烈波动,您可能还需要进行一些平均。如果可能的话,我会一直比较喜欢较小的实例,并且随着需要更多的火力而旋转更多副本。