Freigeben über


Leistungsdiagnosewerkzeuge

Von Mike Rousos

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

Informationen zu Blazor WebAssembly Leistungsdiagnosetools und Leistungsindikatoren finden Sie unter ASP.NET Core-Browser-Entwicklertools-Diagnose Blazor WebAssembly und ASP.NET Core Blazor WebAssembly Event-Pipe-Diagnosen.

Visual Studio-Diagnosetools

Die in Visual Studio integrierten Profilerstellungs- und Diagnosetools sind ein guter Ausgangspunkt für die Untersuchung von Leistungsproblemen. Diese Tools sind leistungsfähig und praktisch für die Verwendung aus der Visual Studio-Entwicklungsumgebung. Die Tools ermöglichen die Analyse von CPU-Auslastungs-, Speicherauslastungs- und Leistungsereignissen in ASP.NET Core-Apps. Integriert zu sein erleichtert das Profiling während der Entwicklungszeit.

Weitere Informationen finden Sie in der Visual Studio-Dokumentation.

Application Insights

Application Insights bietet detaillierte Leistungsdaten für Ihre App. Application Insights sammelt automatisch Daten zu Antwortraten, Fehlerraten, Abhängigkeitsreaktionszeiten und mehr. Application Insights unterstützt die Protokollierung von benutzerdefinierten Ereignissen und Metriken, die für Ihre App spezifisch sind.

Azure Application Insights bietet mehrere Möglichkeiten, Einblicke in überwachte Apps zu geben:

  • Application Map – hilft dabei, Leistungsengpässe oder Fehler-Hotspots in allen Komponenten verteilter Apps zu erkennen.

  • 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 Dips in den Werten von Metriken ermöglicht.

  • Leistungsblatt im Application Insights-Portal:

    • Zeigt Leistungsdetails für unterschiedliche Vorgänge in der überwachten App an.
    • Ermöglicht das detaillierte Untersuchen einer einzelnen Operation, um alle Teile/Abhängigkeiten zu überprüfen, die zu einer verlängerten Dauer beitragen.
    • Der Profiler kann von hier aus aufgerufen werden, um nach Bedarf Leistungsspuren zu sammeln.
  • Azure Application Insights Profiler ermöglicht regelmäßige und bedarfsgesteuerte Profilerstellung von .NET-Apps. Das Azure-Portal zeigt erfasste Leistungsablaufverfolgungen mit Aufrufstapeln und Hot-Paths an. Die Ablaufverfolgungsdateien können auch für eine tiefere Analyse mithilfe von PerfView heruntergeladen werden.

Application Insights kann in einer Vielzahl von Umgebungen verwendet werden:

  • Optimiert für die Arbeit in Azure.
  • Arbeitet in Produktion, Entwicklung und Staging.
  • Funktioniert lokal aus 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 Leistungsanalysetool, das vom .NET-Team speziell für die Diagnose von .NET-Leistungsproblemen erstellt wurde. PerfView ermöglicht die Analyse von CPU-Auslastung, Arbeitsspeicher und GC-Verhalten, Leistungsereignissen und Wanduhrzeit.

Weitere Informationen zu PerfView finden Sie im Handbuch des Benutzers, 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). Die Tools erzeugen detaillierte Leistungsprofile von Windows-Betriebssystemen und -Apps. WPT verfügt über umfangreichere Möglichkeiten zum Visualisieren von Daten, aber die Datensammlung ist weniger leistungsfähig als perfViews.

PerfCollect

Während PerfView ein nützliches Leistungsanalysetool für .NET-Szenarien ist, wird es nur unter Windows ausgeführt, sodass Sie es nicht verwenden können, um Ablaufverfolgungen aus ASP.NET Core-Apps zu sammeln, die in Linux-Umgebungen ausgeführt werden.

PerfCollect ist ein Bash-Skript, das native Linux-Profilierungstools (Perf und LTTng) verwendet, um auf Linux Spuren zu sammeln, 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-Apps sammeln, die dann mit PerfView auf einem Windows-Computer analysiert werden.

Weitere Informationen zum Installieren und Einstieg mit PerfCollect finden Sie auf GitHub.

Andere Drittanbieter-Performance-Tools

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