繁体   English   中英

消耗计划中的Azure函数执行会相互干扰

[英]Azure function executions in consumption plan interfere with eachother

我对Azure Functions有严重的问题。 让我概述一下我的情况。

我有一个工作量,用于处理Blob容器中的传入数据文件。 使用BlobTrigger,我的处理功能会拾取文件,对其进行处理并将其从容器中删除。 在消费计划处理后2分钟内,一个文件的所有内容。

一切正常,所以我很高兴。 现在,我想按比例放大内容,并在Blob容器中提供+/- 10个批次。 运行时开始并行执行它们,因此仍可以按预期运行。 但是,然后:这些功能的并行执行速度明显降低,因此单个工作负载的处理时间超过了最大值。 执行时间为10分钟! 这是导致事情放慢速度的五分之一,这取决于提供的工作数量。

我在这里想念吗? 这是为这些功能构建的,还是仅仅是玩具或其他东西? 我现在依靠[Singleton]来注释我的函数,在这里完全放弃了任何缩放方面的好处? “无服务器”执行单元之间如何相互干扰?

我很困惑,任何见解将不胜感激。

您应该研究Azure函数缩放算法

首次使用Azure函数会分配一个小的实例(1.5 GB)来处理工作负载,这需要一些时间来了解扩展要求,然后只有Azure ScaleController会添加/删除该实例。 对于单个blob,1.5 GB实例需要2分钟,而对于10 blob,同一个实例(1.5 GB)将共享资源,并且需要时间。

我没有看到批量大小设置为BLOB触发器host.josn但我想小批量大小和解决类似的问题与ServiceBus。

您可以在blob上发送更多工作负载,并且借助应用程序Insight,可以检查Azure函数扩展时间。

希望您已经检查了 Blob触发器问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM