C# Azure免费订阅上消费托管函数的性能

C# Azure免费订阅上消费托管函数的性能,c#,azure,scalability,azure-functions,C#,Azure,Scalability,Azure Functions,我正在使用Azure免费试用订阅评估Azure功能。 除了性能/可伸缩性之外,一切正常 我开发了一个简单的http触发函数(C#类库),它只会休眠5秒。 当直接执行一次时,它就像5s一样工作,完全符合预期。 但是当并行调用500次时,执行时间会增长到20-30秒 该函数在消费计划上是“托管”的,所以我希望一旦需要,它会“自动”在单独的VM上执行。 我检查了ARR Cookies(可能会将我的请求粘到一个VM上)-不,不 一点饼干都没有。 一切看起来都很好,至少在这样简单的情况下(没有明显的瓶颈需

我正在使用Azure免费试用订阅评估Azure功能。 除了性能/可伸缩性之外,一切正常

我开发了一个简单的http触发函数(C#类库),它只会休眠5秒。 当直接执行一次时,它就像5s一样工作,完全符合预期。 但是当并行调用500次时,执行时间会增长到20-30秒

该函数在消费计划上是“托管”的,所以我希望一旦需要,它会“自动”在单独的VM上执行。 我检查了ARR Cookies(可能会将我的请求粘到一个VM上)-不,不 一点饼干都没有。 一切看起来都很好,至少在这样简单的情况下(没有明显的瓶颈需要检查-没有数据库,没有通信,等等)


所以,问题是-是因为免费试用订阅,还是我遗漏了什么?

免费试用订阅上的Azure功能没有区别。你不会因此而慢下来

正如@mathewc指出的,这是由于HTTP横向扩展有一些滞后,我们正在努力改进。您可以在此处看到一些可以控制的旋钮:


如果启用节流,将导致429秒,但有助于防止执行时间增加。

我联系了Azure支持团队(通过此处聊天)并询问了这个问题。答案是免费试用订阅有资源限制,为了提供可扩展性的证明,Azure技术专家会联系我,他们会帮我解决这个问题。将在此处跟踪。支持部门的回答不正确-您将在免费试用潜艇中获得消费计划的动态缩放。我刚刚做了自己的快速测试,对于500个并行请求和异步函数中的5秒异步睡眠(wait Task.Delay(5000)),我看到了类似的延迟。问题归结为这样一个事实:对于像这样的请求的瞬时峰值,我们的扩展逻辑无法足够快地扩展—所有请求都会命中单个实例。我们正在进行改进,这些改进将很快发布,使我们能够在这种情况下爆发规模。@mathewc,谢谢!是否有任何方法可以预先配置最少数量的实例,或者说,在消费计划中“预热”功能应用程序?目前没有,请尝试。你必须通过对它进行预加载来预热它。