Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Diagnostizieren von Leistungsproblemen kann schwierig sein – insbesondere, wenn Ihre Anwendung in einer Produktionsumgebung in der dynamischen Cloud ausgeführt wird. Langsame Antworten in Ihrer Anwendung können durch die Infrastruktur, das Framework oder den Anwendungscode verursacht werden, der die Anforderung in der Pipeline verarbeitet.
Code Optimizations, ein KI-basierter Dienst in Azure Application Insights, arbeitet mit dem Application Insights Profiler für .NET zusammen, um CPU- und Speichernutzungsprobleme auf Code-Ebene zu erkennen und Empfehlungen zu deren Behebung zu geben.
Treffen Sie fundierte Entscheidungen und optimieren Sie Ihren Code anhand von Leistungsdaten in Echtzeit und Erkenntnissen aus Ihrer Produktionsumgebung.
Sie können Ihre Codeoptimierungen im Azure-Portal überprüfen.
Codeoptimierungen und Application Insights Profiler für .NET
Der .NET-Profiler und Code Optimizations arbeiten zusammen, um einen ganzheitlichen Ansatz für die Erkennung von Leistungsproblemen bereitzustellen.
Code-Optimierungen
Codeoptimierungen identifiziert, analysiert und löst die vom Application Insights Profiler für .NET gesammelten Profilerstellungsdaten auf. Da der .NET Profiler Daten in Application Insights hochlädt, analysiert unser Machine Learning-Modell einige der Daten, um zu ermitteln, wo der Code der Anwendung optimiert werden kann. Code-Optimierungen:
- Zeigt aggregierte Daten an, die im Laufe der Zeit gesammelt wurden.
- Verknüpft Daten mit den Methoden und Funktionen in Ihrem Anwendungscode.
- Grenzt den Schuldigen ein, indem Engpässe im Code gefunden werden.
- Stellt Leistungskorrekturen auf Codeebene basierend auf Erkenntnissen bereit.
Ermitteln
Auf der Konsolidierten Übersichtsseite "Codeoptimierungen" können Sie alle Empfehlungen zur Codeoptimierung in Ihren Azure-Abonnements und Application Insights-Ressourcen im Azure-Portal anzeigen. Identifizieren Sie Engpässe in Ihrem Code, und überprüfen Sie Empfehlungen auf Codeebene für Entwicklungs-, Test-, Vorproduktions- und Produktionsumgebungen.
Analysieren
Nachdem die Daten Ihrer Umgebung gesammelt wurden, bietet Codeoptimierungen stündlich Empfehlungen auf Codeebene. Standardmäßig zeigt die aggregierte Datenansicht ein rollierendes 24-Stunden-Fenster mit kürzlich identifizierten Problemen mit einem 30-Tage-Verlauf an, in dem Sie frühere Ereignisse überprüfen und analysieren können.
Beheben
Nachdem Sie die Ergebnisse der Codeoptimierung identifiziert und analysiert haben, können Sie diese Probleme in Ihrem Code mithilfe der Codeoptimierungserweiterungen Visual Studio und Visual Studio Code beheben. Mit diesen Erweiterungen können Sie mit GitHub Copilot interagieren, um eine Code-Korrektur zu erhalten, die auf Erkenntnissen der Codeoptimierung basiert.
Sie können auch ein GitHub-Problem über die Seite "Codeoptimierungen" im Azure-Portal erstellen und es dem GitHub Copilot-Codierungs-Agent zuweisen. Von dort aus öffnet GitHub Copilot ein Pull Request und pusht Codeänderungen basierend auf Codeoptimierungserkenntnissen.
Demovideo
Application Insights Profiler für .NET
Der .NET-Profiler konzentriert sich auf die Nachverfolgung bestimmter Anforderungen bis in den Millisekundenbereich. Das Tool bietet einen hervorragenden Überblick über Probleme in Ihrer Anwendung und stellt allgemeine Best Practices vor, um diese zu beheben.
Mit Application Insights Profiler for .NET können Sie Leistungsablaufverfolgungen für Ihre in Azure ausgeführte Anwendung unabhängig vom Szenario erfassen, identifizieren und anzeigen. Der .NET Profiler-Überwachungsprozess erfolgt automatisch im großen Stil und wirkt sich auf Ihre Benutzer nicht negativ aus. Der .NET Profiler identifiziert Folgendes:
- Die mittleren, schnellsten und langsamsten Antwortzeiten für jede Web-Anforderung Ihrer Kunden.
- Der „heiße“ Codepfad, der bei der Verarbeitung einer bestimmten Webanforderung die meiste Zeit beansprucht.
Aktivieren Sie den Profiler for .NET für alle Ihre Azure-Anwendungen, um Daten mit den folgenden Auslösern zu sammeln:
- Samplingtrigger: Startet Profiler zufällig etwa einmal pro Stunde für zwei Minuten.
- CPU-Trigger: Startet Profiler, wenn der Prozentsatz der CPU-Auslastung über 80 Prozent liegt.
- Arbeitsspeichertrigger: Startet Profiler, wenn die Arbeitsspeicherauslastung über 80 Prozent liegt.
Jeder dieser Auslöser kann konfiguriert, aktiviert oder deaktiviert werden.
Kosten und Mehraufwand
Codeoptimierungen werden automatisch generiert, nachdem application Insights Profiler für .NET aktiviert wurde. Standardmäßig sammelt Profiler aktiv Ablaufverfolgungen pro Stunde für 30 Sekunden oder in Zeiträumen mit hoher CPU- oder Speicherauslastung für 30 Sekunden. Die stündliche Ablaufverfolgung (als Sampling bezeichnet) eignet sich hervorragend für eine proaktive Optimierung, während die hohen CPU- und Speicherablaufverfolgungen (sogenannte Trigger) für reaktive Problembehandlung hilfreich sind.
Hinweis
Wenn der Application Insights Profiler für .NET aktiv läuft und Traces erfasst, fügt er in der Regel zwischen 5% und 15% CPU- und Arbeitsspeicherbelastung zu Ihrem Server hinzu.
Es fallen keine zusätzlichen Kosten für das Speichern der Daten an, die vom .NET Profiler erfasst werden. Die Daten werden nach 15 Tagen automatisch gelöscht.
Für einige Codeoptimierungsfeatures (z. B. Fehlervorschläge auf Codeebene) ist Copilot für GitHub und/oder Copilot für Azure erforderlich.
Aktivieren von .NET Profiler
Wenn Sich Frameworks und Azure-Dienste entwickeln, können Sie .NET Profiler für Ihre .NET-Apps aktivieren, die auf Azure ausgeführt werden, über eine Reihe von Optionen.
Azure-Dienst | So aktivieren Sie | Einzelheiten |
---|---|---|
Die meisten Azure-Dienste | Codeänderung in Ihrer Anwendung (am universellsten) |
Wenn Ihre .NET-App auf Varianten von Azure PaaS-Diensten oder -Containern ausgeführt wird, können Sie zwischen zwei Optionen zum Aktivieren von .NET Profiler wählen: - Application Insights Profiler für ASP.NET Core , der das Application Insights SDK verwendet, oder - NeuerAzure Monitor OpenTelemetry Profiler für NET (Vorschau), der Azure Monitor OpenTelemetry Distro verwendet |
Azure App Service | Keine Codeänderung für Ihre Anwendung | Da der Profiler vorinstalliert ist, können Sie Profiler für .NET im Portal für Folgendes aktivieren: - Azure App Service – .NET-App unter Windows - Azure-Funktionen – App Service-Plan |
Virtuelle Computer | Keine Codeänderung für Ihre Anwendung | Nachdem Sie das Application Insights SDK in Ihrem Anwendungscode aktiviert haben, können Sie den Profiler für .NET in Ihrer ARM-Vorlage aktivieren. - Azure Virtual Machines und Virtual Machine Scale Sets für Windows - Azure Service Fabric |
Details und Beispiele zum Aktivieren von Profiler für .NET
- Azure App Service – .NET-App unter Windows
- Azure App Service – .NET-App unter Linux
- Container:
- Azure Container Apps – ein Dienst für containerbasierte Anwendungen
- Azure Kubernetes Services
- Azure-Containerinstanzen
- Azure Virtual Machines und Virtual Machine Scale Sets für Windows
- Azure-Funktionen – App Service-Plan
- Azure Service Fabric
Hinweis
Sie können auch den Java Profiler für Azure Monitor Application Insights verwenden, derzeit in der Vorschau.
Unterstützte Regionen
Code Optimizations ist in denselben Regionen verfügbar wie Application Insights. Sie können die verfügbaren Regionen mit dem folgenden Befehl überprüfen:
az account list-locations -o table
Mithilfe von Verbindungszeichenfolgen können Sie eine Region explizit festlegen. Lernen Sie anhand von Beispielen, wie Verbindungszeichenfolgen funktionieren.
Einschränkungen
Profilieren von Web-Apps:
- Obwohl Sie den .NET Profiler ohne zusätzliche Kosten nutzen können, muss Ihre Web-App mindestens im Basic-Tarif des Web-Apps-Features von Azure App Service gehostet werden.
- Sie können an jede Web-App nur einen Profiler anfügen.
Problembehandlung
Profiler
Wenn Sie den Profiler für .NET aktiviert haben, aber keine Traces angezeigt werden, siehe den Leitfaden zur Problembehandlung.
Codeoptimierungen
Treten Probleme auf? Überprüfen Sie das Problembehandlungshandbuch für Codeoptimierungen für Szenariolösungen.
Nächste Schritte
Erfahren Sie, wie Sie den .NET Profiler mit Codeoptimierungen in Ihrem Azure-Dienst aktivieren: