Azure功能很慢

时间:2017-08-15 07:49:21

标签: azure azure-functions azure-batch azure-functions-runtime

我正在测试函数的CPU性能,所以我创建了一个函数,用于查找数字中的素数。它由Azure Service Bus触发。 在我的本地机器上它运行350毫秒。

在消费计划中运行时,该功能大约需要1000毫秒。 当我批量发送100条消息到函数时,它可以扩展到大约16个实例,但每个函数的性能大大降低到3000-7000ms之间。

在尝试使用4核的标准服务计划时,性能会更好,但不是那么多。它仍然比我的笔记本电脑慢得多。 这个人有一个similar issue

这是从功能中预期的性能/缩放吗? E.q.不太适合批量处理CPU密集型方法?

Azure批次会更合适吗?

1 个答案:

答案 0 :(得分:2)

我不知道运行函数的硬件的确切规范,但您可以假设消耗计划的每个实例都是低调的单核VM。如果您需要运行CPU密集型延迟关键工作负载,那可能不是一个很好的匹配。

您的本地计算机可能比这些实例更快,因此350ms与1000ms的差异来自于此。

减少到3000-7000ms与多个函数执行在同一个实例上同时运行的事实有关。他们正在争夺CPU,相互放慢速度。对于纯CPU绑定工作负载,最好在"maxConcurrentCalls": 1中设置host.json