我有一個存儲隊列超過100,000個的azure存儲隊列。平均處理時間約爲1分鐘以完成每個項目(如WebJob儀表板中所報告的)。如何最大化WebJob CPU使用率
我已經設置了最大批量大小爲我webJob爲32這樣的:
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.BatchSize = 32;
var host = new JobHost(config);
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
如果我將它設置任何高於32的webjob將無法啓動並保持(掛起的重新啓動和啓動之間翻轉)所以我假設32是最大批量大小。
但是,我的應用程序服務計劃運行時CPU利用率很低,爲4%。我已經啓用了基於CPU使用率的自動縮放。
我想要做的是弄清楚如何使Web作業並行執行更多任務,以便在需要時可以開始使用更多的CPU使用率,並有望使其自動縮放,然後處理更多內容。我可以利用哪些槓桿使我的WebJob更好地利用我的App Service計劃實例?
我遭受同樣的性能問題。無論我做什麼,Webjobs的CPU時間都不會超過5%。這種情況甚至發生在一個虛假的webjob示例中,它絕對不會消耗高cpu幾乎一分鐘的排序次數,而是重複排序多個項目列表,而沒有消耗CPU的意義。最高cpu使用率爲5%。 ...批量大小和批閾值沒有用,因爲問題不在於從隊列中獲取批次,而僅僅是使用機器中可用的CPU。有任何想法嗎? – fernaramburu