【发布时间】:2014-07-08 11:35:42
【问题描述】:
我的应用程序严重依赖于 Windows Azure 存储(不是服务总线)中的队列。直到两天前,它就像一个魅力,但突然之间我的工人角色不再能够处理队列中的所有项目。我添加了几个计数器,并从该数据推断出从队列中删除项目是瓶颈。例如,从队列中删除单个项目可能需要 1 秒!
在 SO 帖子 How to achive more 10 inserts per second with azure storage tables 和 MSDN 博客上 http://blogs.msdn.com/b/jnak/archive/2010/01/22/windows-azure-instances-storage-limits.aspx 我找到了一些关于如何加快与队列通信的信息,但这些帖子只关注插入新项目。到目前为止,我还没有找到关于为什么删除队列项目应该很慢的任何信息。所以问题是:
(1) 有没有人知道为什么突然删除可能很慢?
(2) 在 Azure 的状态页面 (https://azure.microsoft.com/en-us/status/#history) 上,没有提到西欧(我的东西所在的地方)有任何服务中断;我可以依赖服务页面吗?
(3) 在同一个存储中,我有很多 blob 和表中的数据。这么大的数据量会干扰从队列中删除项目的能力吗?另外,有谁知道如果你突破 2TB 的数据限制会发生什么?
【问题讨论】:
-
您有多少个工作角色(听起来可能只有一个)以及它们运行的虚拟机大小是多少?
-
你是对的;我只有一个工人角色(它是一个 POC,所以我在这里并没有真正遵循最佳实践)而且它是一个中等大小的角色。但是,Azure 管理门户中显示的 CPU 百分比仅为 50% 左右。