我们有一些相当CPU,RAM和I / O密集的代码(它创建了大量临时文件,解压缩,调整大小和压缩图像).我们正在尝试将其集成到“无服务器”的Web应用程序中,并且看到我们的代码仅在我们在Azu
我们观察到,我们的代码在Azure功能上的运行速度比在本地工作站(Core i7-4790,16GB RAM,SSD)上慢得多.例如,一个典型的工作负载为我们提供了这些时间:
Dev workstation: 2.47 sec Azure Functions, "App Service" plan (S3 size): 10.59 sec Azure Functions, "Consumption" plan: 15.96 sec
我们还发现,在“消费”计划中,时间变化相当广泛 – 一项特殊工作给我们的时间在112到153秒之间变化. S3“App Service”计划中的相同工作需要117到119秒,而我的工作站上则需要31秒.
P3上的计时与S3类似,这与我的预期相同,因为CPU和RAM规格是相同的.
所以我真的有几个问题:
>我们可以做些什么来分析在Azure上运行的应用程序,以确定瓶颈可能在哪里?
>我们是否因为尝试在Azure Functions上运行如此繁重的工作负载而感到疯狂?
>有没有人建议如何让我们的代码在更强大的硬件上运行,而不必担心管理虚拟机场的所有复杂性?
>真的取决于你的目标.对于某些应用程序,您引用的时间可能非常好.
>对于SO而言,这似乎是一个过于宽泛的问题.
更多的FunctionApp-ish方法是尝试将长时间运行的函数分解为更小的短期运行函数,从而分解并可能并行化处理.