Azure Func:消费计划的执行延迟

问题描述 投票:0回答:1

我有以下功能应用程序在消费计划上运行:

  1. 使用http触发器我启动进程,触发器启动长时间运行的编排

  2. 编排+活动触发器同步数据(从一个系统获取数据并将其发送到另一个系统)。每个活动仅按顺序读取和处理一定量的数据,以免达到消耗计划限制。

  3. 以防万一,在处理完每个页面后,我们人为地在 Orchestrator 中应用空闲时间(30 秒),并确保我们不会达到限制。

整个过程通常持续15-20小时。

前 1-2 次运行结果符合预期 - 应用程序处理了所有数据,没有任何意外延迟。

然后一些奇怪的事情开始了 - 根据日志(App Insights)

每隔约 20 分钟,应用程序就会挂起约 8 分钟且不执行任何操作。

例如,页面在 10:00:00 处理,应用程序等待 30 秒,下一页在 10:08:00 开始处理。

然后 20 分钟再次看起来正常,直到 10:28:00,应用程序再次挂起,直到 10:36:00

这是消费计划中预期的吗?

我在日志中没有看到任何错误或达到某些限制的任何其他内容 - https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

我还检查了该应用程序的指标。

  1. 连接 - 应用程序使用 ~50-60(限制为 600)

  2. 我不会在应用程序内创建任何线程或使用缩放 - 所以我相信线程不应该是任何问题。不管怎样,指标显示 - 不同时间段内最多 100 个(限制为 512 个)

  3. 处理过程中内存工作集显示 ~800 MB

  4. 根据指标,函数每天的执行次数约为 15k 次调用。

  5. 此应用程序是此消费计划中唯一的应用程序

我很困惑。有什么建议吗?

更新1:现在我在日志中看到了一些东西。 为什么主机在我的进程中停止了? 消费计划有问题还是什么?

谢谢!

azure azure-functions azure-functions-isolated
1个回答
0
投票

我同意@alex消费计划的默认限制为10分钟,并且在该间隔之后就会超时。为了持续运行持久编排功能,您可以使用 Azure Function 应用程序高级版或应用程序服务专用计划。

enter image description here

Azure Functions Premium 计划包含:-

始终准备好实例,并且在启动功能时没有延迟。它包含预热实例,可减少冷启动。 Premium 计划的超时时间也可以设置为无限制,默认值设置为 30 分钟。

参考这个Ms文件进行比较。

此外,为了获得有关功能应用程序性能的更多见解,请访问诊断和解决问题部分并检查风险评估、可用性和性能:-

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.