3

我在我的小型 azure VM 上运行一些启动脚本(cmd/bat),其中包括从已安装的 VHD 进行文件传输操作,通常它会在大约 3 分钟内完成(复制文件并使用命令行提取 ~500Mb zip 文件7z)。

当我扩展到约 150 个实例时,相同的操作非常慢(总共最多 15 分钟,其中大部分由 7z 使用)。此外,最初使用 mstsc 很难访问完成启动过程最慢的节点(动画滞后并且需要很长时间才能登录),但这可能不相关。

可能是什么问题呢?

我们有检查缓存的想法,但很高兴知道在以下情况下可能存在的任何其他潜在瓶颈。

更新: 我尝试在 D:\ 驱动器上解压缩,而不是在 C:\ 上解压缩,当缩放到 200 时,解压缩大约需要一分钟!所以问题似乎是 C:\ 可能在 blob 上。但同样,我在 40 个文件中有 3GB 的数据,所以每个 blob 60MB/s 应该足以处理它。或者 - 是否可以为所有 blob 设置上限?

4

2 回答 2

6

每个 VM 大小都有自己的带宽限制。

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

我怀疑您总是拥有一份已安装的 VHD 副本,并且有大约 150 个实例命中它。增加托管 VHD 的 VM 的 VM 大小将是一个很好的测试,但也是一个昂贵的解决方案。长期将文件放在 blob 存储中。这意味着修改您的脚本以访问 RESTful 端点。

在 2-3 个不同的 VM 上创建 2-3 个驱动器并编写一个确保它们具有相同文件的脚本可能是最简单的。您的脚本可能会随机命中 2-3 个安装的 VHD 之一以分散负载。

以下是每个 VM 大小的最新限制。不幸的是,此表不包括网络带宽:http: //msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx

-富有的

ps 我从 2013 年 1 月 Microsoft 提供的 Azure 培训工具包中的 PowerPoint 幻灯片中获得了带宽。

于 2013-06-25T18:02:36.433 回答
4

要考虑的一件事是存储帐户的每个存储帐户的可伸缩性目标。启用地理复制后,您可能会遇到 10Gbps 出口和 20K 事务/秒。对于 150 个实例,您可能会在所有实例启动时拉动 150 x 100Mbps 或 15Gbps。

不确定您问题的“已安装 VHD”部分。使用 Azure 的驱动器挂载,在任何给定时间只有一个虚拟机实例可以挂载到驱动器。对于这种类型的文件复制操作,通常您会直接从存储 blob 中获取文件,而不是存储在 vhd 中的文件(而 vhd 又存储在页 blob 中)。

编辑:只是想提一下,单个 blob 限制为 60MB/秒(在我引用的博客文章中也提到过)。这也可能与您的节流有关。

于 2013-06-25T18:11:46.323 回答