Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Azure Web Apps are really slow

I've been investigating a slow warmup time for my production app and I got some unexpected results.

Testing on various Azure VMs showed the warmup time to be well-related to the application server performance (so it's not external request, including sql), but what's really interesting is the comparison to Azure Web Apps and my own local machine (all times are averages from at about 3 runs):

VM A0:            >1m VM A2:            13s VM D2V2:           6.8s VM D5V2:           7.8s Wep App P2:       25s Web App S2:       26.5s My local machine:  6.6s 

My local machine is an i5 with 3.3GHz.

The local machine is fastest even though it connects to the same SQL Azure database over the internet and the request includes Entity Frameworks's model checking.

All tests use .NET 4.6.1, the newest release at this time.

Apparent conclusion:

  • My 4 year old desktop box is faster than any size of Azure VM for jobs that are not parallelizable.
  • Azure Web Apps run on potatoes even if you're willing to spend 500 bucks a month.

This seems fishy. Any ideas what else might be going on? Or what to test?

EDIT after some profiling: None of the following sheds any light on my question, but it's still interesting information (tested on another A2 VM with 20s total request time while the profiler being attached):

  • 58% is jitting.
  • File IO blocking is virtually zero (the app has been started before, so I guess all required dll parts are in the memory cache).
  • <1% is SQL Azure requests.
  • The rest of the 90% running time should therefore be .NET execution or profiler overhead.
  • The profiler itself has quite the overhead, as the request runs in about only 15s without it (I used a trial of JetBrains dotTrace, which I really like)
  • 50% of the time is during the first request with Entity Framework, 80% of it being jitting
  • 15% being the first use of SignalR, almost no jitting (doing some reflection-nonsense)

Almost no parallelization is being done.

like image 259
John Avatar asked May 01 '16 12:05

John


People also ask

Why is Azure app service so slow?

This problem is often caused by application level issues, such as: network requests taking a long time. application code or database queries being inefficient. application using high memory/CPU.

How long does it take to deploy a web app on Azure?

As a fellow Azure user, I share your pain - deploying isn't "quick"/"painless" - and this hurts especially when you're in a development cycle and want to test dev iterations on Azure. However, in general deployments should take much less than 60 minutes - and less than 20 minutes too.


2 Answers

Initially when we deployed our Azure App Service - Web app (hosted in Resource Group1) and our Azure SQL database (hosted in Resource Group2), the app was very slow. The mistake that I made was that both the RG1 vand RG2 were in two different locations. Later, when we changed the location of both RGs (recreated them actually) to be the same then the WebApps started running smooth.

Thanks, Prawin

like image 104
Prawin Avatar answered Oct 06 '22 02:10

Prawin


I too have the same problem, I fixed by moving or copying my site contents(Pictures and Videos) to Azure Blob Storage. We can also configure Azure CDN to WebApps, VM, Cloud Services and Custom origin. By trying thsi Azure CDN your site loading time will improve.

like image 30
Rajasekar Avatar answered Oct 06 '22 03:10

Rajasekar