我有一个队列,有600万条消息要在azure中处理。我有一个在应用计划中运行的功能应用程序,带有队列触发器。当CPU过高时,应用服务计划将扩展到其他实例。我的应用计划运行大约10-20%的CPU使用率。我之前遇到过一个问题,即函数阻塞,因为函数内部的网络调用导致CPU飙升,我的应用程序服务计划将向外扩展。我通过使用异步代码解决了这个问题,所以现在我有这么低的CPU使用率和非常快的函数执行时间。
我目前看到大约1k消息处理了一分钟,有时它会上升到2k一点然后再下降。我的功能无法扩展是否有任何原因?
答案 0 :(得分:2)
你的问题也有答案:
当CPU过高时,应用服务计划将扩展到其他实例。
和
我的应用计划的CPU使用率约为10-20%。
长话短说:我认为你正在缩放错误的指标。正如@evilSnobu建议的那样,您可以扩展队列中的消息数量。有关消费计划的一些额外信息可能很有趣:
运行时缩放
Azure Functions使用称为缩放控制器的组件来监视事件的速率,并确定是缩小还是缩小。比例控制器对每种触发类型使用启发式算法。例如,当您使用Azure队列存储触发器时,它会根据队列长度和最旧队列消息的年龄进行扩展。
取自Azure Functions Consumption and App Service plans