2012-10-09 74 views
3

我有一个关于优化Azure blob下载速度的问题。我正在寻找在Azure blob存储中有10000个文件大小为5 MB的私有容器。每当用户想要下载这个文件时,我都会生成一个SAS Url供用户下载文件。截至目前,我正在研究约1000名并发用户在任何时间下载各种文件。优化从1000个并发用户的Azure Blob存储下载

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

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

回答

4
  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