使用1000个并发用户优化Azure Blob存储的下载

时间:2012-10-09 11:53:50

标签: azure blob

我对Azure blob下载速度的优化有疑问。我正在寻找Azure blob存储中的私有容器,其中10000个文件大小约为5 MB。每当用户想要下载此文件时,我将生成一个SAS Url供用户下载该文件。截至目前,我正在寻找〜1000个并发用户随时下载各种文件。

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

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

1 个答案:

答案 0 :(得分:6)

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