Outils de diagnostic des performances

Par Mike Rousos

Cet article répertorie des outils permettant de diagnostiquer les problèmes de performances dans ASP.NET Core.

Outils de diagnostic Visual Studio

Les outils de profilage et de diagnostic intégrés à Visual Studio sont un bon point de départ pour analyser les problèmes de performances. Ces outils sont puissants et pratiques à utiliser depuis l’environnement de développement Visual Studio. Les outils permettent d’analyser l’utilisation du processeur, l’utilisation de la mémoire et les événements de performances dans les applications ASP.NET Core. Le fait qu’ils soient intégrés facilite le profilage au moment du développement.

Des informations supplémentaires sont disponibles dans la documentation Visual Studio.

Application Insights

Application Insights fournit des données de performances détaillées pour votre application. Application Insights collecte automatiquement des données sur les taux de réponse, les taux d’échec, les temps de réponse des dépendances, etc. Application Insights prend en charge la journalisation d’événements et de métriques personnalisés propres à votre application.

Azure Application Insights offre plusieurs façons de fournir des insights sur les applications supervisées :

  • La cartographie d’application vous permet de repérer les goulots d’étranglement des performances ou les zones sensibles dans tous les composants des applications distribuées.

  • Azure Metrics Explorer est un composant du portail Microsoft Azure qui permet de tracer des graphiques, d’établir visuellement une corrélation entre les tendances et d’analyser les pics et les creux dans les valeurs de métriques.

  • Panneau des performances sur le portail Application Insights :

    • Présente dans le détail les performances des différentes opérations dans l’application supervisée.
    • Permet d’explorer une même opération pour vérifier toutes les parties/dépendances qui contribuent à une longue durée.
    • Profiler peut être appelé d’ici pour collecter les traces de performances à la demande.
  • Azure Application Insights Profiler permet un profilage régulier et à la demande des applications .NET. Le portail Azure présente les traces de performances capturées avec des piles d’appels et des chemins chauds. Les fichiers de trace peuvent également être téléchargés pour procéder à une analyse plus approfondie avec PerfView.

Application Insights peut être utilisé dans divers environnements :

  • Optimisé pour une utilisation dans Azure.
  • Fonctionne en production, en développement et en préproduction.
  • Fonctionne localement depuis Visual Studio ou dans d’autres environnements d’hébergement.

Pour plus d’informations sur le monitoring basé sur le code, consultez Application Insights pour ASP.NET Core. Pour plus d’informations sur le monitoring sans code, consultez Surveiller les performances d’Azure App Service.

PerfView

PerfView est un outil d’analyse des performances qui a été spécialement conçu par l’équipe .NET pour diagnostiquer les problèmes de performances .NET. PerfView permet d’analyser l’utilisation du processeur, le comportement de la mémoire et du GC, les événements de performances et la durée d’exécution.

Pour plus d’informations sur PerfView, consultez le guide de l’utilisateur disponible dans l’outil ou sur GitHub.

Windows Performance Toolkit

Windows Performance Toolkit (WPT) est constitué de deux composants : Windows Performance Recorder (WPR) et Windows Performance Analyzer (WPA). Les outils génèrent des profils de performances détaillés des applications et des systèmes d’exploitation Windows. Si WPT propose davantage de possibilités en matière de visualisation de données, ses fonctionnalités de collecte de données sont moins puissantes que celles de PerfView.

PerfCollect

Bien que PerfView soit un outil d’analyse des performances utile dans les scénarios .NET, il s’exécute uniquement sur Windows. Vous ne pouvez donc pas vous en servir pour collecter les traces d’applications ASP.NET Core s’exécutant dans des environnements Linux.

PerfCollect est un script bash qui fait appel à des outils de profilage Linux natifs (Perf et LTTng) pour collecter des traces sur Linux qui peuvent être analysées par PerfView. PerfCollect est utile lorsque des problèmes de performances se manifestent dans des environnements Linux où PerfView ne peut pas être utilisé directement. En revanche, PerfCollect peut collecter les traces d’applications .NET Core pour être ensuite analysées sur un ordinateur Windows avec PerfView.

Vous trouverez des informations supplémentaires concernant l’installation et la prise en main de PerfCollect sur GitHub.

Autres outils de performance tiers

La liste suivante répertorie certains outils de performances tiers qui sont utiles pour analyser les performances des applications .NET Core.