简短版本:出现超时Azure队列请求的突然,戏剧性和看似永久性增长的原因是什么?
很难提供可能与此相关的所有细节,但这是一个开始:
这是一个Azure应用程序(SDK v2.0),其中WCF服务将工作请求放在队列上(每天大约100k次调用)以及一些处理队列的工作者角色。我们使用最新的.NET代理(3.3.38)进行了New Relic监控。
我们在几天前部署的最新版本中遇到了一个问题 - 在正常运行大约24小时之后,突然间,当我们的工作人员角色时,我们突然看到超时率大大增加从队列中获取消息,以及吞吐量的灾难性下降(我们的应用程序现在几乎可以使用40个工作人员跟上自己的队列,而通常只需要2个!)自从超时开始以来,它们没有显示出任何迹象放松,从开始发生以来保持同样的速度。
来自New Relic的几张照片说明:
虽然这并不足以提供一个好的答案,但我只想弄清楚我可能会从哪里开始寻找。我已经获得了New Relic和Microsoft的支持票,但我们也试图自己进行调查。这可能会受到限制吗?我的队列处理器工作者角色中的某种资源耗尽?我们没有看到WCF服务的负载增加,我们还没有更改Azure客户端库或者在处理队列的代码中改变了很多东西。
答案 0 :(得分:2)
我建议您在存储帐户上启用分析,以确定瓶颈是服务器端还是客户端/网络相关。具体来说,您可以查看Storage Analytics Metrics表 - AverageE2ELatency和AverageServerLatency属性,以检查问题是服务器端还是客户端。
您可以从以下链接了解有关Azure存储分析的更多信息
概述: http://msdn.microsoft.com/en-us/library/hh343270.aspx
如何在门户中启用: http://azure.microsoft.com/en-us/documentation/articles/storage-monitor-storage-account/
指标表架构: http://msdn.microsoft.com/en-us/library/hh343264.aspx
博文: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/08/03/windows-azure-storage-analytics.aspx