简体   繁体   English

在扩展时,Windows Azure虚拟机访问网络的速度很慢

[英]Windows Azure virtual machine is slow to access network when scaling

I'm running some startup scripts (cmd/bat) on my small azure VM which include a file-transfer operation from a mounted VHD, and normally it finishes in about 3 minutes (copying files and extracting ~500Mb zip file with command-line 7z). 我正在我的小天蓝色VM上运行一些启动脚本(cmd / bat),其中包括来自已安装的VHD的文件传输操作,通常它在大约3分钟内完成(复制文件并使用命令行提取~500Mb zip文件) 7Z)。

When I scale out to ~150 instances, the same operation is very slow (up to 15 minutes in total, most of which is used by 7z). 当我扩展到~150个实例时,相同的操作非常慢(总共最多15分钟,其中大部分由7z使用)。 Also, the nodes which are the slowest to complete the bootup procedure are very hard to access at first using mstsc(animation is lagging and takes a lot of time to log in), but that might not be related. 此外,完成启动过程最慢的节点最初使用mstsc很难访问(动画滞后并需要花费大量时间登录),但这可能没有关系。

What could be the problem? 可能是什么问题呢?

We had the idea to examine the cache, but it would be nice to know of any other potential bottleneck which may be present in the following situation. 我们有想法检查缓存,但是知道在下列情况下可能存在的任何其他潜在瓶颈会很好。

UPDATE: I tried extracting on the D:\\ drive instead of extracting it on the C:\\ and while scaling to 200, the unzip takes about a minute! 更新:我尝试在D:\\驱动器上提取而不是在C:\\上提取它,并且在缩放到200时,解压缩大约需要一分钟! So it seems like the problem is that C:\\ might be on the blob. 所以似乎问题是C:\\可能在blob上。 But again, I have 3GB of data in 40 files, so 60MB/s per blob should be enough to handle it. 但同样,我在40个文件中有3GB的数据,因此每个blob的60MB / s应足以处理它。 Or - can it be the case that we have a cap for the all blobs? 或者 - 是否可以为所有blob设置上限?

The VM sizes each have their own bandwidth limitations. 每个VM大小都有自己的带宽限制。

| VM Size       | Bandwidth     |
| ------------- |:-------------:|
| Extra Small   | 5 (Mbps)      |
| Small         | 100 (Mbps)    |
| Medium        | 200 (Mbps)    |
| Large         | 400 (Mbps)    |
| Extra Large   | 800 (Mbps)    |

I suspect you always have one copy of your mounted VHD and have ~150 instances hitting it. 我怀疑你总是有一个已安装VHD的副本,并且有大约150个实例。 Increasing the VM size of the VM hosting the VHD would be a good test but an expensive solution. 增加托管VHD的VM的VM大小将是一个很好的测试,但是一个昂贵的解决方案。 Longer term put the files in blob storage. 长期将文件放在blob存储中。 That means modifying your scripts to access RESTful endpoints. 这意味着修改脚本以访问RESTful端点。

It might be easiest to create 2-3 drives on 2-3 different VMs and write a script that ensures they have the same files. 在2-3个不同的VM上创建2-3个驱动器并编写一个确保它们具有相同文件的脚本可能是最简单的。 Your scripts could randomly hit one of the 2-3 mounted VHDs to spread out the load. 您的脚本可以随机命中2-3个已安装的VHD中的一个以分散负载。

Here are the most recent limitations per VM size. 以下是每个VM大小的最新限制。 Unfortunately this table doesn't include network bandwidth: http://msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx 不幸的是,这个表不包括网络带宽: http//msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx

-Rich -丰富

ps I got the bandwidths from a PowerPoint slide in the Microsoft provided Azure Training Kit dated January 2013. ps我从2013年1月提供的Microsoft提供的Azure培训套件中获得了PowerPoint幻灯片的带宽。

one thing to consider is the per-storage-account scalability target of a storage account. 需要考虑的一件事是存储帐户的每存储帐户可伸缩性目标 With georeplication enabled, you have 10Gbps egress and 20K transactions/sec, which you could be bumping into. 启用地理复制后,您可以实现10Gbps出口和20K事务/秒,这可能会遇到问题。 Figure with 150 instances, you could potentially be pulling 150 x 100Mbps, or 15Gbps as all of your instances are starting up. 在150个实例的图中,当您的所有实例都启动时,您可能会拉动150 x 100Mbps或15Gbps。

Not sure about the "mounted VHD" part of your question. 不确定您的问题的“已安装的VHD”部分。 With Azure's drive-mounting, only one virtual machine instance can mount to a drive at any given time. 使用Azure的驱动器安装,在任何给定时间只能将一个虚拟机实例安装到驱动器。 For this type of file-copy operation, typically you'd grab a file directly from a storage blob, rather than a file stored in a vhd (which, in turn, is stored in a page blob). 对于这种类型的文件复制操作,通常您直接从存储blob中获取文件,而不是存储在vhd中的文件(而vhd又存储在页面blob中)。

EDIT : Just wanted to mention that an individual blob is limited to 60MB/sec (also mentioned in the blog post I referenced). 编辑 :只是想提一下个别blob限制为60MB /秒(我在参考的博客文章中也提到过)。 This could also be related to your throttling. 这也可能与您的节流有关。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM