Tools für die Leistungsdiagnose

Von Mike Rousos

In diesem Artikel sind Tools zum Diagnostizieren von Leistungsproblemen in ASP.NET Core aufgeführt.

Diagnosetools in Visual Studio

Die in Visual Studio integrierten Profilerstellungs- und Diagnosetools sind ein guter Ausgangspunkt für die Untersuchung von Leistungsproblemen. Diese Tools sind leistungsstark und können komfortabel in der Visual Studio-Entwicklungsumgebung verwendet werden. Die Tools ermöglichen die Analyse von CPU-Auslastung, Arbeitsspeicherauslastung und Leistungsereignissen in ASP.NET Core-Apps. Die Integration gewährleistet eine einfachere Profilerstellung zur Entwicklungszeit.

Weitere Informationen finden Sie in der Visual Studio-Dokumentation.

Application Insights

Application Insights stellt ausführliche Leistungsdaten für Ihre App bereit. Application Insights erfasst automatisch Daten beispielsweise zu Antwortraten, Fehlerraten oder Antwortzeiten von Abhängigkeiten. Application Insights unterstützt die Protokollierung benutzerdefinierter Ereignisse und Metriken, die für Ihre App spezifisch sind.

Azure Application Insights bietet mehrere Möglichkeiten, Erkenntnisse zu überwachten Apps zu gewinnen:

  • Mithilfe der Anwendungsübersicht können Sie Leistungsengpässe oder Fehlerstellen für alle Komponenten verteilter Apps identifizieren.

  • Der 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 Tiefen in Metrikwerten ermöglicht.

  • Blatt „Leistung“ im Application Insights-Portal:

    • Zeigt Leistungsdetails für verschiedene Vorgänge in der überwachten App an.
    • Ermöglicht einen Drilldown in einen einzelnen Vorgang, um alle Teile/Abhängigkeiten zu überprüfen, die zu einer langen Ausführungszeit beitragen.
    • Profiler können hier aufgerufen werden, um bei Bedarf Ablaufverfolgungen zur Leistung zu sammeln.
  • Der Azure Application Insights Profiler ermöglicht die regelmäßige und bedarfsgesteuerte Profilerstellung von .NET-Apps. Das Azure-Portal zeigt erfasste Leistungsablaufverfolgungen mit Aufruflisten und langsamsten Pfaden an. Die Ablaufverfolgungsdateien können zur detaillierteren Analyse mit PerfView auch heruntergeladen werden.

Application Insights kann in einer Vielzahl von Umgebungen verwendet werden:

  • Optimiert für die Arbeit in Azure.
  • Funktioniert in Produktions-, Entwicklungs- und Stagingumgebungen.
  • Funktioniert lokal in Visual Studio oder in anderen Hostingumgebungen.

Weitere Informationen zur codebasierten Überwachung finden Sie unter Application Insights für ASP.NET Core. Weitere Informationen zur codelosen Überwachung finden Sie unter Überwachen der Leistung von Azure App Service.

PerfView

PerfView ist ein Tool zur Leistungsanalyse, 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 Gesamtbetrachtungszeit.

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

Windows Performance Toolkit

Das Windows Performance Toolkit (WPT) besteht aus zwei Komponenten: Windows Performance Recorder (WPR) und Windows Performance Analyzer (WPA). Diese Tools erstellen umfassende Leistungsprofile für Windows-Betriebssysteme und -Apps. WPT bietet vielfältigere Möglichkeiten zur Visualisierung von Daten, aber die Datensammlung ist weniger leistungsfähig als die von PerfView.

PerfCollect

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

PerfCollect ist ein Bash-Skript, das native Linux-Profilerstellungstools (Perf und LTTng) zum Sammeln von Ablaufverfolgungen unter Linux verwendet, die dann 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 aus .NET Core-Apps sammeln, die dann mit PerfView auf einem Windows-Computer analysiert werden.

Weitere Informationen zum Installieren von PerfCollect und zu den ersten Schritten finden Sie auf GitHub.

Andere Leistungstools von Drittanbietern

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