哪种存储有利于读取性能

时间:2014-10-01 20:13:29

标签: azure-storage azure-storage-blobs

我有一个自定义数据文件。在我的本地计算机上高速读取此文件。在我的测试中,读取速度是0.5毫秒(寻求简单的读取操作)。我想在天蓝色上使用相同的操作。试图通过以下步骤使用Blob存储:

  1. 创建云存储帐户
  2. 创建blob客户端
  3. 获取容器
  4. 获取blob参考
  5. OpenRead stream
  6. 此步骤大约需要10-15秒。这是一个只读文件。我可以做些什么来增加阅读表现?什么是大量读取操作的最佳存储空间。在这段时间里,阅读速度对我来说更重要。我不想将数据文件与web / worker角色一起使用。我必须在云存储上。

1 个答案:

答案 0 :(得分:1)

您必须分析访问模式以进一步调试此问题。例如,OpenRead为您提供了易于使用的流,但如果您在文件中搜索,则其预读缓冲策略可能不是最佳的。默认情况下,流一次缓冲4MB,但如果调用者超过4MB范围,则必须丢弃此缓冲区。根据您在每次搜索后的阅读量,您可能希望直接缩减read-ahead buffer size或使用DownloadRangeToStream API。或者,如果您的blob足够小,您可以使用DownloadToStream API一次性下载它,然后在内存中处理它。

我建议使用Fiddler来查看应用程序对Azure存储的请求,看看这是否是适用于您的方案的最佳方法。如果您发现每个请求都需要很长时间,则可以enable Azure Storage Analytics分析这些请求的E2E延迟和服务器延迟。有关如何解释Google Analytics数据的详情,请参阅Monitor, diagnose, and troubleshoot Microsoft Azure Storage文章。