Leistungs-Diagnosetools

Von Mike Rousos

In diesem Artikel werden Tools für die Diagnose von Leistungsproblemen in ASP.NET Core aufgeführt.

Visual Studio Diagnosetools

Die in Visual Studio integrierten Profilerstellungs- und Diagnosetools sind ein guter Ausgangspunkt für die Untersuchung von Leistungsproblemen. Diese Tools sind leistungsstark und praktisch für die Verwendung in der Visual Studio Entwicklungsumgebung. Die Tools ermöglichen die Analyse von CPU-Auslastung, Arbeitsspeicherauslastung und Leistungsereignissen in ASP.NET Core-Apps. Die integrierte Erstellung vereinfacht die Profilerstellung zur Entwicklungszeit.

Weitere Informationen finden Sie in Visual Studio Dokumentation.

Application Insights

Application Insights stellt detaillierte Leistungsdaten für Ihre App bereit. Anwendungs-Insights erfasst automatisch Daten zu Antwortraten, Fehlerraten, Abhängigkeitsantwortzeiten und mehr. Anwendungs-Insights unterstützt die Protokollierung benutzerdefinierter Ereignisse und Metriken, die für Ihre App spezifisch sind.

Azure-Anwendung Insights bietet mehrere Möglichkeiten, um Erkenntnisse zu überwachten Apps zu gewinnen:

  • Anwendungsübersicht : Hilft dabei, Leistungsengpässe oder Fehler-Hotspots für alle Komponenten verteilter Apps zu erkennen.

  • Azure Metrik-Explorer ist eine Komponente des Microsoft Azure-Portals, die das Zeichnen von Diagrammen, das visuelle Korrelieren von Trends und das Untersuchen von Spitzen und Einbrüchen in den Werten von Metriken ermöglicht.

  • Blatt "Leistung" im Anwendungs-Insights-Portal:

    • Zeigt Leistungsdetails für verschiedene Vorgänge in der überwachten App an.
    • Ermöglicht einen Drillvorgang in einem einzelnen Vorgang, um alle Teile/Abhängigkeiten zu überprüfen, die zu einer langen Dauer beitragen.
    • Profiler kann von hier aus aufgerufen werden, um Leistungsablaufverfolgungen bei Bedarf zu erfassen.
  • Azure-Anwendung Insights Profiler ermöglicht die regelmäßige und bedarfsorientierte Profilerstellung von .NET-Apps. Azure-Portal zeigt erfasste Leistungsablaufverfolgungen mit Aufruflisten und heißen Pfaden an. Die Ablaufverfolgungsdateien können auch für eine ausführlichere Analyse mit perfView heruntergeladen werden.

Anwendungs-Insights können in einer Vielzahl von Umgebungen verwendet werden:

  • Optimiert für die Arbeit in Azure.
  • Funktioniert in Produktion, Entwicklung und Staging.
  • Funktioniert lokal aus Visual Studio oder in anderen Hostingumgebungen.

Weitere Informationen zur codebasierten Überwachung finden Sie unter Anwendungs-Insights für ASP.NET Core. Weitere Informationen zur überwachung ohne Code finden Sie unter Überwachen Azure App Service Leistung.

PerfView

PerfView ist ein Leistungsanalysetool, das vom .NET-Team speziell für die Diagnose von .NET-Leistungsproblemen erstellt wurde. PerfView ermöglicht die Analyse der CPU-Auslastung, des Speicher- und GC-Verhaltens, der Leistungsereignisse und der Uhrzeit.

Weitere Informationen zu PerfView finden Sie im Benutzerhandbuch, das im Tool oder auf GitHub verfügbar ist.

Windows Performance Toolkit

Windows Performance Toolkit (WPT) besteht aus zwei Komponenten: Windows Performance Recorder (WPR) und Windows Leistungsanalyse (WPA). Die Tools erstellen detaillierte Leistungsprofile von Windows Betriebssystemen und Apps. WPT bietet umfangreichere Möglichkeiten zum Visualisieren von Daten, aber das Sammeln von Daten ist weniger leistungsfähig als die von PerfView.

PerfCollect

Obwohl PerfView ein nützliches Leistungsanalysetool für .NET-Szenarien ist, wird es nur auf Windows ausgeführt, sodass Sie es nicht zum Sammeln von Ablaufverfolgungen von ASP.NET Core Apps verwenden können, die in Linux-Umgebungen ausgeführt werden.

PerfCollect ist ein Bash-Skript, das native Linux-Profilerstellungstools (Perf und LTTng) verwendet, um Ablaufverfolgungen unter Linux zu erfassen, die von PerfView analysiert werden können. PerfCollect ist nützlich, wenn Leistungsprobleme in Linux-Umgebungen auftreten, in denen PerfView nicht direkt verwendet werden kann. Stattdessen kann PerfCollect Ablaufverfolgungen von .NET Core-Apps sammeln, die dann mit perfView auf einem Windows Computer analysiert werden.

Weitere Informationen zur Installation und den ersten Schritte mit PerfCollect finden Sie auf GitHub.

Andere Leistungstools von Drittanbietern

Im Folgenden sind einige Leistungstools von Drittanbietern aufgeführt, die bei der Leistungsuntersuchung von .NET Core-Anwendungen nützlich sind.