簡短版本:出現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