Azure functions Azure函数通过非内存度量进行扩展

Azure functions Azure函数通过非内存度量进行扩展,azure-functions,Azure Functions,使用Azure Web应用程序,我可以根据一系列有用的指标进行扩展,如磁盘或网络I/O、CPU和内存使用率。到目前为止,在使用动态服务计划时,您似乎只将内存使用率作为扩展的度量。从我所读到的,有额外的未记录的魔术,决定了它的规模;我真希望它能被完整地记录下来 如果我有一个函数应用程序,它有时使用大量的CPU,有时使用大量的磁盘或网络I/O,有时主要使用RAM——混合使用各种指标,甚至只是前两种指标中的一种,那么函数扩展是否有效 更具体地说,对于我的情况或我的预期情况,如果函数使用队列触发器,并且

使用Azure Web应用程序,我可以根据一系列有用的指标进行扩展,如磁盘或网络I/O、CPU和内存使用率。到目前为止,在使用动态服务计划时,您似乎只将内存使用率作为扩展的度量。从我所读到的,有额外的未记录的魔术,决定了它的规模;我真希望它能被完整地记录下来

如果我有一个函数应用程序,它有时使用大量的CPU,有时使用大量的磁盘或网络I/O,有时主要使用RAM——混合使用各种指标,甚至只是前两种指标中的一种,那么函数扩展是否有效

更具体地说,对于我的情况或我的预期情况,如果函数使用队列触发器,并且基于每个特定执行具有混合的资源需求,但所有作业都适合所选内存层,那么扩展是否会考虑内存以外的因素,比如CPU和I/O,或者队列中的消息数和一台机器上正在处理的消息数,以便将负载分散到其他机器上

我担心的是,如果作业不使用太多内存,而是使用高CPU或网络流量,那么我最终会在一台机器上完成大量作业,在等待其他资源时缓慢运行,而不是将负载分散到多个实例上


我们当前的解决方案/服务仅基于CPU进行扩展,因此功能似乎将一个问题替换为另一个类似的问题。有些工作需要很长时间才能完成,因为它们受I/O限制,而且服务在少数工蜂身上过度提供了这些工作。事实上,我们编写的代码在CPU上旋转以伪造高使用率,以便向服务建议它应该扩展,这是非常糟糕和浪费的。

当文档谈到内存与扩展相关时,我认为有点误导。实际上,负责扩展功能应用程序的Azure函数动态运行时与内存、CPU或I/O无关,而是与吞吐量有关。其想法是,可能有多种因素会导致速度减慢(CPU、内存、I/O等),因此,在检测到速度减慢时进行扩展比尝试针对特定资源进行优化更有意义


请看我在这里对类似问题的回答:。它更详细地介绍了如何做出规模决策,重点是队列触发函数。希望这将为您提供所需的信息。

我认为文档中提到内存与缩放相关时有点误导。实际上,负责扩展功能应用程序的Azure函数动态运行时与内存、CPU或I/O无关,而是与吞吐量有关。其想法是,可能有多种因素会导致速度减慢(CPU、内存、I/O等),因此,在检测到速度减慢时进行扩展比尝试针对特定资源进行优化更有意义

请看我在这里对类似问题的回答:。它更详细地介绍了如何做出规模决策,重点是队列触发函数。希望这将为您提供所需的信息