Azure附加Blob缓慢读取性能

时间:2016-08-26 16:09:40

标签: azure azure-storage-blobs

我观察到,当blob被追加到几千次或更多时,从Azure Append Blob读取的速度非常慢。写入/追加速度很快,但读取几千个典型的日志blob,每个大小为几KB,总大小为几MB需要超过一分钟!读取类似大小的标准博客或页面blob需要几毫秒。有没有办法加速读取附加blob,即通过压扁内部结构?

到目前为止看起来最好定期“存档”/转换附加blob以阻止blob,然后处理它们。有什么建议吗?

如果没有,建议日志的替代存储是什么? 可以使用Azure表,但即使使用批量操作,也需要更多读取。

3 个答案:

答案 0 :(得分:1)

我确实切换到Azure Tables并且读取性能合理,1.5K项目大约1秒,以批量模式读取。仍然,读取具有相同内容的块或页面blob以毫秒为单位,速度更快。如果有一种方法可以附加到页面blob,那将非常有效。这可以手动完成,因此可能Append(或其他类型的)Blob可以在将来的某个版本中自动执行。在Deep dive in Append Blob内附加Blob非常复杂,这可能是读取速度慢的原因。

答案 1 :(得分:0)

这是因为许多小附加内容会导致blob变得非常分散,因此将快速写入替换为慢速读取。

目前,最好的选择是像您写的那样,定期将append blob复制到块blob中并从中读取。

但是,Azure存储团队已计划(自2018年6月起)添加de-fragmentation feature。有了这一点,我们也许最终也可以快速读取小附件。

答案 2 :(得分:-1)

请注意附加Blob是由块组成的。单个附加blob最多可包含50,000个块,每个块最多4MB。如果将新内容附加到现有文件,则会导致文件性能降低。我们可以找到提交号码,如下面的截图: enter image description here

将新内容附加到Append blob中存在的文件不是一个好主意。当我们需要将内容附加到blob并且我们不关心订单时,应该使用追加blob。如果要使用append来记录某些应用程序信息,我们可以将新的日志信息写入新文件并保存到Azure append blob。 Azure表也是我们记录应用程序信息的好服务。如果我们想要查找日志信息,我们可以使用Microsoft Azure Explorer