.net 需要提高Azure Function应用程序的吞吐量

.net 需要提高Azure Function应用程序的吞吐量,.net,azure-functions,azure-eventhub,throughput,.net,Azure Functions,Azure Eventhub,Throughput,我的事件触发Azure功能应用程序的当前吞吐量约为11条记录/秒(1个事件有1条记录)。它从Eventhub获取数据并将其发布到API端点。我一直在调整host.json设置(maxBatchSize、prefetchCount),但没有提高速率 该应用程序在.NET上运行,所以甚至不能尝试使用函数\u WORKER\u PROCESS\u COUNT手动增加工作人员 API端点的限制为每秒100条记录 以下是一些测试结果: 试验 领域 应用服务计划 实例 最大批量大小 预取计数 平均CPU

我的事件触发Azure功能应用程序的当前吞吐量约为11条记录/秒(1个事件有1条记录)。它从Eventhub获取数据并将其发布到API端点。我一直在调整host.json设置(maxBatchSize、prefetchCount),但没有提高速率

  • 该应用程序在.NET上运行,所以甚至不能尝试使用函数\u WORKER\u PROCESS\u COUNT手动增加工作人员
  • API端点的限制为每秒100条记录
以下是一些测试结果:

试验 领域 应用服务计划 实例 最大批量大小 预取计数 平均CPU使用率 传输的数据(记录) 所用总时间 吞吐量(记录/秒) 1. 产品 S1 1. 100 200 100 3281 0:18:31 2.95 2. 产品 P2V2 1. 100 200 11.5 34264 0:48:57 11.67 3. 销售订单 P1V2 2. 64 128 11(两种情况下) 33816 0:49:25 11.41 增加单个实例并发性的一种方法是更改例如,如果您有一个功能应用程序,其中包含两个HTTP函数,并且maxConcurrentRequests请求设置为25,则对任一HTTP触发器的请求将计入共享的25个并发请求。当该函数应用程序扩展到10个实例时,这10个函数实际上允许250个并发请求(10个实例*每个实例25个并发请求)

第二种方法是扩展函数应用程序实例本身。以下是Function App提供的一份扩展计划:


必须在(高级)消费层上试用吗?不,因为这里高级实例的CPU使用率只有11。我觉得没必要这么做。您能解释一下(高级)消费层有什么帮助吗?一个ASP实例上只能运行这么多并行函数。在消费计划中,它可以在任何时候扩展到多个实例。我只是想知道为什么你的测试中没有包括消费层。我明白你关于平行实例的观点。但是,我手动扩展到了3个实例。吞吐量仍然保持不变。这就是为什么我没有将其从应用程序服务转移到消费计划。除了并行实例之外,这里没有其他方法来提高吞吐量吗?通过调整host.json设置?我的印象是,我可以通过这种方式增加它谢谢你回来。以下是我的开放点:1)我认为maxConcurrentRequests不适用于事件触发函数。如果是,请求是否等同于事件?请让我知道。2) 我得到了改变计划的部分,但是,我仍然不明白为什么我不能通过手动增加CPU和实例数来提高吞吐量。如果可以的话,请帮我解决这个问题。我可以分享更多的测试结果。3) 我看不出图片中消费计划和保费计划的定义有什么区别。请详细说明。1-是的,请求相当于事件,maxConcurrentRequests适用于所有触发器。2-通过增加CPU-在哪里?功能应用程序是PaaS提供的。实例数量的增加将在一定程度上提高吞吐量(取决于负载),3-我在回答中也分享了表的链接,请访问那里了解更多详细信息。