首页 文章

如何包含大型数据集AzureWebRole

提问于
浏览
0

我们正在尝试在一个需要大型数据集的天蓝色webrole中设置服务(大约10GB超过35,000个文件) . 什么是最好的方法?我们尝试过:

i)将visual studio项目中的所有文件包含为内容文件 - VS停止运行

ii)将文件放入blob存储并根据需要下载它们 - 服务停止运行,大概是因为我们通过将文件保存到磁盘来达到实例的IOPS限制 . 我们不想使用大型实例,因为我们在正常运行时不会达到IOPS级别 .

iii)包含一个zip文件然后在启动时提取它 - 再次停止 .

我假设有一种方法可以将所有文件都包含在depolyment包中而不将它们放在VS项目中,但是我们每次更新时都必须上传一个10GB的部署包,这似乎并不理想 . 由于速度的原因,文件需要在SSD上本地 . 有没有人对此有任何好的解决方案?

2 回答

  • 0

    将10 GB文件放在包中当然是不可取的,甚至不允许这样做,因为包文件的最大大小只能是600 MB .

    一个可能的问题解决方案是使用基于SMB协议的Azure File Service . 虽然它在预览中,但我认为它完全符合该法案 . 您可以做的是将文件上传到那里,然后将这些文件所在的位置映射到VM中的网络驱动器(例如Z :) . 然后,当您需要这些文件时,您只需将这些文件从此网络驱动器复制到本地VM并使用这些文件即可 .

  • 0

    这应该是在ServerFault上,因为它是一个基础设施问题,而不是编程问题 . 此外,它还在征求意见,要求采用“最佳”方法将内容下载到您的角色实例中 . 所以问题就是被关闭的风险 .

    也就是说:worker / web角色实例不一定具有IOPS限制(与网络带宽限制不同) . Blob存储的吞吐量限制为60MB /秒吞吐量,每秒2,000个事务(存储事务处理),整个存储帐户为20,000 /秒 .

    没有将内容加载到角色实例的最佳方法 . 但是让's just assume you'以编程方式提取blob内容 . 您没有提到如何将内容下载到本地实例,但各种Azure SDK实现都能够通过多个并行操作进行下载 . 假设您正在使用.NET sdk,您可以在 BlobRequestOptions 参数上设置 ParallelOperationThreadCount ,使其大于1 . (参考here) .

相关问题