简短版本:出现Azure队列请求超时突然,戏剧性和看起来永久性增加的原因是什么?Azure队列性能突然下降
这将是难以提供所有的细节,也可能会被与此有关,但这里是一个开始:
这是一个Azure应用程序(SDK V2.0)与WCF服务上放置工作请求一个队列(每天大概需要10万次呼叫)和几个处理队列的工作角色。我们使用最新的.NET代理(3.3.38)进行New Relic监控。
我们已经遇到了我们最近发布的问题,几天前部署 - 在正常运行约24小时后,突然间我们开始发现当我们的工作者角色获取时出现极大的超时率来自队列的消息以及吞吐量的灾难性下降(我们的应用程序现在几乎无法跟上使用40名工人的自己的队列,而它通常只有2个!)自超时开始以来,它们没有显示出让自开始发生以来,保持同样的速度。
从New Relic的一对夫妇图片说明:
虽然这是几乎没有足够的信息来提供一个很好的答案,我只是想弄清楚哪里我可能会开始寻找。我已经获得了New Relic和Microsoft的支持门票,但我们也试图自行调查。这可以节流吗?我的队列处理器worker角色中的某种资源耗尽?我们没有看到WCF服务的负载增加,并且我们没有更改Azure客户端库,也没有更改处理队列的代码中的大部分内容。
我会回滚您的应用程序更新并查看您是否返回到正常服务。如果你无法做到这一点,我会密切检查可能导致阻塞呼叫的任何事情。在代码的关键区域放置大量的工具,看看代码是否需要很长时间才能执行。 –
我已经能够缩小问题的范围,因为注意到它出现在我们的测试环境中:它是超时的CloudQueue.DeleteMessage调用(不是每次都是间歇性的,但通常足以导致问题)。将做一些适当的编辑或将其转移到一个新的问题很快。 – user1454265