4

我有一个关于 Azure blob 下载速度优化的问题。我正在考虑在 Azure blob 存储中拥有一个私有容器,其中包含 10000 个大小约为 5 MB 的文件。每当用户想要下载此文件时,我都会生成一个 SAS Url 供用户下载文件。截至目前,我正在查看大约 1000 个并发用户在任何时间点下载各种文件。

我想知道以下任何步骤是否可以帮助我保持这种使用的最佳下载速度。

  1. 将文件存储在不同的容器中有助于提高下载速度。
  2. 阅读 Windows Azure 存储团队的博客,每个存储帐户都有固定的带宽。为了抵消这一点,我是否需要将文件存储在不同的存储帐户中。
  3. 在存储帐户中拥有一个容器是否足以为约 1000 个并发用户获得最佳下载速度。如果您能告诉我实现这一目标的最佳实践,那也很棒。
4

1 回答 1

6
  1. 不,Blob 是分区,而不是容器。
  2. 是的。
  3. 这取决于。单个blob的目标吞吐量高达 60 MBytes/sec,但由于您谈论的是 10000 个文件,这应该不是问题(假设您的 1000 个并发用户将下载不同的文件)。您需要查看的是存储帐户的可伸缩性目标,其中吞吐量高达每秒 3 吉比特。如果您的应用程序增长,这可能会成为一个问题,但您可以查看一些解决方案:
    • 使用多个存储帐户(可能每个国家、每个应用程序一个......)。创建存储帐户的限制非常低(以前每个订阅有 5 个存储帐户,不知道这是否改变了),因此如果您想使用更多存储帐户,您需要联系 Microsoft。
    • 考虑将 CDN 与 blob 存储一起使用来公开您的文件。这将提高性能(更高的吞吐量),但您的用户也会更快地下载文件,因为他们从“附近”位置下载文件。
    • 您还可以在您的 Web 角色中进行一些缓存(例如在 LocalResources 或缓存预览中,以缓存您的常用文件)。但我不建议这样做。

本文是一个很好的起点:Windows Azure Storage Abstractions and their Scalability Targets

于 2012-10-09T12:36:14.427 回答