web-dev-qa-db-fra.com

Azure Web Apps est vraiment lent

J'ai étudié un temps de préchauffage lent pour mon application de production et j'ai obtenu des résultats inattendus.

Les tests sur diverses machines virtuelles Azure ont montré que le temps de préchauffage était bien lié aux performances du serveur d'applications (il ne s'agit donc pas d'une demande externe, y compris SQL), mais ce qui est vraiment intéressant est la comparaison avec Azure Web Apps et ma propre machine locale (toutes les heures sont moyennes d'environ 3 passages):

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

Ma machine locale est un i5 à 3,3 GHz.

La machine locale est la plus rapide même si elle se connecte à la même base de données SQL Azure sur Internet et que la demande inclut la vérification du modèle Entity Frameworks .

Tous les tests utilisent .NET 4.6.1, la dernière version en date.

Conclusion apparente:

  • Ma boîte de bureau de 4 ans est plus rapide que n'importe quelle taille d'Azure VM pour les travaux qui ne sont pas parallélisables.
  • Azure Web Apps fonctionne sur des pommes de terre même si vous êtes prêt à dépenser 500 dollars par mois.

Cela semble louche. Des idées quoi d'autre pourrait se passer? Ou quoi tester?

MODIFIER après un certain profilage: Aucun des éléments suivants ne met en lumière ma question, mais ce sont toujours des informations intéressantes (testées sur un autre A2 VM avec un temps de demande total de 20 s tandis que le profileur attaché):

  • 58% jitting.
  • Fichier IO le blocage est pratiquement nul (l'application a déjà été démarrée, donc je suppose que toutes les parties de DLL requises sont dans le cache mémoire).
  • <1% correspond aux requêtes SQL Azure.
  • Le reste du temps d'exécution de 90% devrait donc être une exécution .NET ou une surcharge du profileur.
  • Le profileur lui-même a tout à fait les frais généraux, car la demande s'exécute en environ 15 secondes sans elle (j'ai utilisé un essai de JetBrains dotTrace, que j'aime vraiment)
  • 50% du temps est lors de la première demande avec Entity Framework, 80% étant jitting
  • 15% étant la première utilisation de SignalR, presque pas de jitting (faire un peu de réflexion-non-sens)

Il n'y a pratiquement aucune parallélisation.

30
John

Initialement, lorsque nous avons déployé notre Azure App Service - Application Web (hébergée dans Resource Group1) et notre base de données Azure SQL (hébergée dans Resource Group2), l'application était très lente. L'erreur que j'ai commise était que les deux RG1 et RG2 se trouvaient à deux endroits différents. Plus tard, lorsque nous avons changé l'emplacement des deux RG (les recréant en fait) pour qu'ils soient identiques, les WebApp ont commencé à fonctionner correctement.

Merci, Prawin

3
Prawin

Moi aussi, j'ai le même problème, j'ai résolu en déplaçant ou en copiant le contenu de mon site (photos et vidéos) vers Azure Blob Storage. Nous pouvons également configurer Azure CDN sur WebApps, VM, Cloud Services et Custom Origin. En essayant ce CDN Azure, le temps de chargement de votre site s'améliorera.

1
Rajasekar