2017-07-16 25 views
0

我有一個隊列中有600萬條消息要在azure中處理。我有一個功能應用程序在帶有隊列觸發器的應用程序計劃中運行。當CPU變得太高時,應用程序服務計劃將擴展到額外的實例。我的應用程序計劃運行大約10-20%的CPU使用率。我之前遇到了一個問題,那就是由於網絡調用導致CPU急速膨脹,並且我的應用服務計劃會擴大,導致功能被阻止。我通過使用異步代碼解決了這個問題,所以現在我的CPU使用率很低,功能執行時間非常快。我的天青功能應用程序的隊列觸發器沒有在應用程序服務計劃上擴展

我目前看到大約1k條消息處理了一分鐘,有時它會上升到2k一點,然後退後。有沒有什麼原因讓我的功能不能擴展?

+1

兩者不應該由你的隊列長度,而不是CPU時間尺度? – evilSnobu

回答

2

你提的問題也持答案:

的應用服務計劃將擴展到更多情況下,當CPU過高。

我的應用程序的計劃是運行在10-20%的CPU使用率。

長話短說:我認爲你在擴大錯誤的度量。正如@evilSnobu建議的那樣,您可以擴展隊列中的消息數量。在消費計劃,可能是有趣的一些額外的信息:

運行時縮放
Azure的功能使用一種稱爲規模控制器組件監視事件的發生率,並確定是否進行擴展或縮小。比例控制器使用每種觸發類型的啓發式。例如,當您使用Azure隊列存儲觸發器時,它會根據隊列長度和最老的隊列消息的時間進行縮放。
Azure Functions Consumption and App Service plans

相關問題