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

dkr*_*h23 4 blob azure

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

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

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

San*_*tia 6

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

本文是一个很好的起点:Windows Azure存储抽象及其可扩展性目标