Azure 函数很慢

Posted

技术标签:

【中文标题】Azure 函数很慢【英文标题】:Azure functions are slow 【发布时间】:2018-01-23 02:53:58 【问题描述】:

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

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

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

这是函数所期望的性能/扩展吗?方程不适合 CPU 密集型方法的批处理?

Azure 批处理会更合适吗?

【问题讨论】:

【参考方案1】:

我不知道运行 Functions 的硬件的确切规格,但您可以假设 Consumption plan 的每个实例都是低配置的单核 VM。如果您需要运行 CPU 密集型延迟关键型工作负载,那么这可能不是一个很好的选择。

您的本地计算机可能比这些实例更快,因此这就是 350 毫秒与 1000 毫秒差异的来源。

减少到 3000-7000ms 与多个函数的执行在同一实例上同时运行有关。他们正在争夺 CPU,彼此减慢速度。对于纯 CPU 密集型工作负载,您最好将 "maxConcurrentCalls": 1 设置为 host.json

【讨论】:

以上是关于Azure 函数很慢的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure Block 到 CosmosDB 的 Azure 数据工厂复制速度很慢

Azure Java DirectoryClient 列出文件和目录的速度很慢

Azure 网站提供静态 JS/CSS 但不是二进制的速度很慢

Azure DevOps on Premise,工作区映射真的很慢

为啥我的特定用户定义函数很慢?

为啥 PHP 函数 imap_search() 很慢?