Problèmes de performances, de disponibilité et d’application des applications web pour Azure App Service

Note

Certaines des instructions suivantes peuvent uniquement fonctionner sur application Windows Service ou Linux App Service. Par exemple, Linux App Service s’exécute en mode 64 bits par défaut.

Résumé

Cet article répond aux questions fréquemment posées (FAQ) sur les problèmes de performances des applications web de Azure App Service.

Où puis-je obtenir plus d’informations sur les quotas et les limites des différents plans App Service ?

Pour plus d’informations sur les quotas et les limites, consultez Limites App Service.

Mon plan App Service affiche l’utilisation du processeur ou de la mémoire même lorsque toutes les applications web sont arrêtées

App Service nécessite des processus système continus qui gèrent plusieurs opérations et fonctionnalités de plateforme, telles que les mises à jour de sécurité, la disponibilité de la console SCM (Kudu), la surveillance des applications, l’authentification et de nombreuses autres fonctionnalités d’application web.

Les processus système s’exécutent sur des plans App Service, même s’il n’existe aucune application web en cours d’exécution ou si le plan App Service ne contient aucune application web.

Les processus de plateforme consomment une quantité minimale de ressources (telles que l’UC, la mémoire et l’espace disque), et vous devez tenir compte de ces ressources pendant la planification de la capacité, la surveillance et la configuration du déclencheur de mise à l’échelle automatique d’un plan App Service.

Mes performances d’application sont lentes

Plusieurs facteurs peuvent ralentir les performances d’une application. Pour obtenir des étapes de dépannage détaillées, consultez Résoudre les problèmes de lenteur d’une application web.

Conseil / Astuce

  • Activez le paramètre Always On sousParamètres généraux> pour maintenir votre application au chaud et éviter les démarrages à froid. Ce paramètre permet de réduire le délai après une période d’inactivité, en particulier dans les offres Basic et supérieures.
  • Configurez un chemin de vérification de l'intégrité pour surveiller l'état de l'application et remplacer automatiquement les instances non réactives. Cette configuration permet de maintenir la disponibilité et les performances. Pour plus d’informations, consultez Surveillance des instances App Service en utilisant le contrôle de l'état de santé.

Comment résoudre les problèmes de consommation élevée du processeur ?

Dans certains scénarios de consommation élevée du processeur, votre application peut réellement nécessiter davantage de ressources informatiques. Dans ce cas, vous pouvez évoluer vers un niveau de service supérieur afin que l’application obtienne toutes les ressources dont elle a besoin. Dans d’autres cas, une consommation excessive du processeur peut être due à une boucle incorrecte ou à une méthode de codage. Obtenir un aperçu de ce qui déclenche une consommation excessive du processeur est un processus en deux parties. Créez d’abord un vidage du processus puis analysez ce vidage de processus. Pour plus d’informations, consultez Capturer et analyser un fichier de vidage en cas de consommation excessive du processeur pour Web Apps.

Comment résoudre les problèmes de consommation élevée de mémoire ?

Dans certains scénarios de consommation élevée de mémoire, votre application peut réellement nécessiter davantage de ressources informatiques. Dans ce cas, vous pouvez évoluer vers un niveau de service supérieur afin que l’application obtienne toutes les ressources dont elle a besoin. À d’autres moments, un bogue dans le code peut entraîner une fuite de mémoire. Une pratique de codage peut également augmenter la consommation de mémoire. Obtenir un aperçu de ce qui déclenche une consommation excessive de mémoire est un processus en deux parties. Créez d’abord un vidage du processus puis analysez ce vidage de processus. L’outil Crash Diagnoser d’Azure Site Extension Gallery peut effectuer efficacement ces deux étapes. Pour plus d’informations, consultez Capturer et analyser un fichier de vidage en cas de consommation excessive intermittente de mémoire pour Web Apps.

Comment automatiser les applications web App Service à l’aide de PowerShell ?

Vous pouvez utiliser les applets de commande PowerShell pour gérer et mettre à jour des applications web App Service. Consultez Automatiser les applications web hébergées dans Azure App Service à l’aide de PowerShell pour plus d’informations sur l’utilisation des applets de commande PowerShell basées sur Azure Resource Manager pour automatiser les tâches courantes.

Note

Pour les scripts d’automatisation actuels, utilisez le dernier module Az.Websites . L’ancien AzureRM module est déconseillé.

J’ai besoin de collecter des informations pour résoudre les problèmes de mon application web

Afficher les journaux des événements d’une application web

Pour afficher les journaux des événements d’une application web, procédez comme suit :

  1. Connectez-vous à votre site web Kudu (https://*yourwebsitename*.scm.azurewebsites.net).
  2. Dans le menu, sélectionnez Console de débogage>CMD.
  3. Sélectionnez le dossier LogFiles.
  4. Pour afficher les journaux des événements, sélectionnez l’icône en forme de crayon en regard de eventlog.xml.
  5. Pour télécharger les journaux d’activité, exécutez l’applet de commande PowerShell Save-AzureWebSiteLog -Name webappname.

Capturer un vidage de mémoire en mode utilisateur d’une application web

Pour capturer un vidage de mémoire en mode utilisateur d’une application web, procédez comme suit :

  1. Connectez-vous à votre site web Kudu (https://*yourwebsitename*.scm.azurewebsites.net).
  2. Sélectionnez le menu Explorateur de processus.
  3. Cliquez avec le bouton droit sur le processus w3wp.exe ou sur votre processus WebJob.
  4. Sélectionnez Télécharger le vidage de mémoire>Vidage complet.

Afficher les informations au niveau du processus pour une application web

Vous avez deux options pour afficher les informations au niveau processus pour votre application web :

  • Dans le portail Azure:

    1. Ouvrez l’Explorateur de processus pour l’application web.
    2. Pour afficher les détails, sélectionnez le processus w3wp.exe.
  • Dans la console Kudu :

    1. Connectez-vous à votre site web Kudu (https://*yourwebsitename*.scm.azurewebsites.net).
    2. Sélectionnez le menu Explorateur de processus.
    3. Pour le processus w3wp.exe, sélectionnez Propriétés.

Je ne trouve pas mes fichiers journaux dans la structure de dossiers de mon application web lors de l’utilisation de la fonctionnalité de cache local d’App Service

Si vous utilisez la fonctionnalité de cache local d’App Service, elle affecte la structure des dossiers LogFiles et Data pour votre instance App Service. Lorsque le cache local est utilisé, le système crée des sous-dossiers dans les dossiers LogFiles et Données de stockage. Les sous-dossiers utilisent la convention de nommage « identificateur unique » suivie de l’horodatage. Chaque sous-dossier correspond à une instance de machine virtuelle dans laquelle l’application web est en cours d’exécution ou s’exécute.

Pour déterminer si vous utilisez le cache local, consultez l’onglet Paramètres de votre application App Service. Si le système utilise le cache local, le paramètre WEBSITE_LOCAL_CACHE_OPTION d’application est défini sur Always.

Pour activer le suivi des demandes ayant échoué

Pour activer le suivi des demandes ayant échoué, procédez comme suit :

  1. Dans le portail Azure, accédez à votre application web.

  2. Sélectionnez Tous les paramètres>Journaux de diagnostic.

  3. Pour Suivi des demandes ayant échoué, sélectionnez On.

  4. Cliquez sur Enregistrer.

  5. Dans le panneau des applications web, sélectionnez Outils.

  6. Sélectionnez Visual Studio Online.

  7. Si le paramètre n’est pas activé, sélectionnez Activé.

  8. Sélectionnez Go.

  9. Sélectionnez Web.config.

  10. Dans system.webServer, ajoutez la configuration suivante (pour capturer une URL spécifique) :

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*api*" />
    <add path="*api*">
    <traceAreas>
    <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  11. Pour résoudre les problèmes de baisse des performances, ajoutez cette configuration (si la demande de capture prend plus de 30 secondes) :

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*" />
    <add path="*">
    <traceAreas> <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions timeTaken="00:00:30" statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  12. Pour télécharger les traces de requête ayant échoué, accédez à votre site web dans le portail Azure.

  13. Sélectionnez Outils>Kudu>Go.

  14. Dans le menu, sélectionnez Console de débogage>CMD.

  15. Sélectionnez le dossier LogFiles puis le dossier dont le nom commence par W3SVC.

  16. Pour afficher le fichier XML, sélectionnez l’icône en forme de crayon.

Recommandations supplémentaires pour les performances et la résilience

  • Utilisez Application Insights et Azure Monitor pour l’observabilité complète de votre application App Service, notamment la télémétrie, le suivi des dépendances et les métriques actives.

  • Si vous effectuez un déploiement dans des régions qui prennent en charge les zones de disponibilité, envisagez d’activer la redondance de zone pour améliorer la résilience pendant les pannes régionales. Pour plus d’informations, consultez Fiabilité dans la Azure App Service.

  • App Service effectue une maintenance de routine pour garantir la fiabilité de la plateforme. Pour plus de contrôle sur le comportement de mise à jour, en particulier dans App Service Environment v3, configurez la préférence de mise à niveau. Pour plus d’informations, consultez La maintenance de routine (planifiée) pour Azure App Service.