Oli*_*ock 6 performance azure azure-storage-blobs
我的Azure云服务使用.Net存储库(1.7)读取和写入blob.blob与服务位于同一数据中心.在我的第一个容器中,操作很快(10ms的顺序).在我的第二个容器中,它们非常慢(通常大约2s或14s,介于两者之间).两者都使用CloudBlob.DownloadToStream()将数据传输到MemoryStream中.文件大小通常小于100kB.
现在我承认我没有设置一个适当的测试来展示上述所有内容 - 我只是通过我的日志文件,因此我访问blob的方式可能会有一些细微差别.如果情况确实如此,请道歉.
无论如何,这两个容器之间唯一的相关区别似乎是:
问题:哪些因素会影响不经常访问的blob的blob性能?我该怎么做才能让它更快?
(我不知道如何实现Azure blob存储,但基于上面我猜测数据会被保存到存储阵列中并通过动态扩展的VM集合进行访问,每个VM都在内存中实现因此,当Azure发现需要启动虚拟机时,会出现~14s的延迟.当虚拟机可用时会发生~2s延迟,但它需要搜索物理磁盘上的数据(似乎相当慢),当项目存储在内存缓存中或类似的东西时,会发生10ms延迟.)
Windows Azure存储的架构不是您所描述的(缓存虚拟机数量不断增加),因此缓存的某些数据和Azure存储服务器端未缓存的其他数据不会受到影响.有关概述,请参阅Windows Azure存储体系结构概述,或SOSP Paper - Windows Azure存储:具有强一致性的高可用性云存储服务,以获得更深入的外观.
要确定blob请求速度较慢的原因,首先要确定缓慢的性能是服务器端还是客户端.幸运的是,Azure Storage通过Storage Analytics(Windows Azure存储日志记录:使用日志跟踪存储请求)使这一过程变得简单- 只需比较端到端延迟和服务器延迟.我怀疑你会看到两件事之一:
| 归档时间: |
|
| 查看次数: |
4654 次 |
| 最近记录: |