Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Azure Functions - Node vs .Net Performance - ColdStart

I don't know whether it is purposefully done or Azure is poor by performance than AWS. Whenever I cold-start an Azure Function it takes close to a minute.

The same function cold starts less than a second (close to 250 msecs) with AWS.

What I see is, Azure stores all the function code in Azure Storage account and load it over the network creating this latency. This is with consumption plan.

If I use App Service Plan for functions, so junky to even have that in modern applications. It can reduce to 3 seconds but not even close to what AWS performs.

What are the other way I can improve performance with Azure, so that I can cold start my functions quickly?

like image 786
Kannaiyan Avatar asked Sep 08 '17 19:09

Kannaiyan


1 Answers

I'm a member of the Azure Functions team. I can assure you we're not deliberately making JavaScript slow. It just comes with some challenges we're still working through.

As you noted, the 60 second cold start performance you are getting is due to the network latency incurred when loading a very large number of small files which is typical for node.js applications.

Our current recommendation is for your to take advantage of Azure-Functions-Pack. It uses webpack to dramatically decrease the number of files loaded by your application.

We are working on some improvements designed to make the manual process of running Functions Pack unnecessary. We aim to have some of these improvements in production sometime later in 2017.

like image 120
Paul Batum Avatar answered Oct 20 '22 16:10

Paul Batum