Azure虚拟机上的磁盘性能降低


9

好的,首先,我要说我不是操作人员,而是开发人员。所以我要进入这里一片未知的土地,所以请多多包涵。

我想使用Azure虚拟机从1.9 GB的zip文件中提取50 GB的XML文件。因此,我一直在测试我应该使用Azure上的哪种实例大小来获得良好的性能,同时又不会支付超出所需的费用。

但是,Azure VM的磁盘性能并没有达到惊人的水平,我想知道是我做错什么了,还是可以预期的结果。

首先,我一直在测试什么?我有一个自定义.NET控制台应用程序,除了将zip文件作为参数外,它什么也不做,并立即开始将zip文件解压缩到该zip文件所在的目录中。在进行提取时,该应用程序会计算多少兆字节应用程序已每秒写入目标文件并输出。

在我的本地开发机器上,此应用程序的写入速度达到160-210 MB / s,因此性能非常好。因此整个提取过程大约需要8分钟。我本地计算机的规格是Intel Core i7 950、3 GHz,4核(8逻辑),12 GB RAM,Samsung SSD 830系列250 GB。

好的,所以我开始测试不同的实例大小,这是我的结果。

  • 在具有Windows Server 2012 Datacenter R2(8核,14 GB RAM)的A4实例上,使用相同的存储帐户在没有主机缓存的情况下使用4个虚拟磁盘进行条带化RAID,我得到了稳定的30-35 MB / s,这意味着提取花费了24分48秒。我还尝试了启用主机缓存,但实际上并没有任何区别。
  • 在具有Windows Server 2012数据中心(8核,28 GB RAM,500 GB本地SSD磁盘)的D4实例上,我在开始的几分钟内获得了非常好的性能(150+ MB / s),然后以200 MB / s和山谷速度为9 MB / s。平均性能在70到100 MB / s之间。提取耗时9分40秒。
  • 在具有Windows Server 2012数据中心(4核,14 GB RAM,250 GB本地SSD磁盘)的D3实例上,我在开始的第一分钟就获得了非常好的性能(150+ MB / s),但是随后性能下降到了稳定的20-40 MB / s,使提取过程花费21分49秒。

在D2和D1实例上,磁盘性能比D3上差。

这真的让我感到惊讶。本地SSD磁盘在D1,D2和D3实例上的性能如何如此差?有谁知道为什么D1和D4之间的磁盘性能会有如此大的差异?这是内存问题吗?当我在提取作业进行期间查看任务管理器时,内存使用量呈爆炸式增长。我怀疑这是因为Windows正在缓存写入的数据,但是当内存不足时,它必须将数据刷新到磁盘。发生这种情况时,磁盘性能会下降。但这在我的本地计算机上不会发生,那么为什么在这些VM上需要这种激进的缓存?

我知道我的本地计算机与Azure中托管的虚拟机之间存在差异,但是我真的可以期待磁盘性能吗?

(我最初在Stackoverflow上发布了我的问题,因为我怀疑是我的应用程序引起了问题。但是我现在不确定了。)

Answers:


7

在这里参加聚会有点晚,但是对于“附加”的价值,Azure中的SSD会根据计算机大小限制其IOP。在任何地方的价格中都没有提到它,但是当他们将我引到下面的博客文章时,我以技术支持的身份提出了这个问题。

请参阅此链接:http : //azure.microsoft.com/blog/2014/10/06/d-series-performance-expectations/


很好的信息,谢谢理查德!我怀疑这与节流有关,但当时我找不到任何有关它的特定信息。该博客文章回答了我的问题。
勒内

天蓝色的限制磁盘io ..到底是什么..我切换到了谷歌云..它们没有限制它,而且价格便宜得多。
泰安18-3-3

4

也许与内存无关。Azure上的“物理”磁盘使用了所谓的Blob存储,这就是即使在硬件相似的情况下,性能也与本地计算机不同的原因。您可以在此链接上找到更多信息。对于严重依赖磁盘性能的SQL Server社区来说,这似乎是一个常见问题。我会引用一篇我发现的文章

白皮书针对Azure VM中的SQL Server的性能指南(第15和26页)提到了在Azure VM中,存储空间可用于提高SQL Server工作负载的存储性能

存储空间是Windows Server 2012的内置功能,可让您使用多个物理磁盘来创建一个虚拟磁盘,因此可以解决VM磁盘本身的I / O限制。再次报价:

使用支持许多(最多16个)物理磁盘的大型VM,可以显着提高存储性能。这可以使Azure成为许多SQL工作负载的可行平台,否则这些工作负载会受到单个Azure磁盘的I / O性能的限制。

文章将告诉你的步骤来创建的存储空间。

您应该先尝试一下。也许您甚至可以使用较小的实例,因为存储服务是与实例本身分开的服务。


没错,Azure上的标准磁盘实际上使用的是Blob存储,但我不认为SSD磁盘就是这种情况。根据我的Microsoft提供的信息,这些是本地物理SSD磁盘。在这种情况下,我认为奇怪的是D实例大小之间的性能差异如此之大。关于存储空间:我对此进行了探索并进行了一些测试,但是不幸的是,它并没有真正给我带来任何明显的性能提升。最后,我得出的结论是,我只需要接受我需要为该任务使用更大的实例大小。
勒内

1
@René您是否有机会测试新的Azure Storage Premium?很抱歉碰到这个老话题,但是我很好奇这个新存储在您的环境中将如何运行。
布鲁诺·法里亚

回复晚了,请原谅。有关Azure存储高级版的重要提示。我尚未尝试过,因为它在我所在的地区尚不可用。但我会一直关注。再次感谢!
勒内2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.