Freigeben über


Problembehandlung bei niedriger App-Leistung in Azure App Service

In diesem Artikel erfahren Sie, wie Sie App-Leistungsprobleme in Azure App Service beheben.

Wenn Sie an einem beliebigen Punkt in diesem Artikel weitere Hilfe benötigen, wenden Sie sich an die Azure-Experten beim Azure Community-Support. Alternativ dazu haben Sie die Möglichkeit, einen Azure-Supportfall zu erstellen. Wechseln Sie zum Azure-Support , und wählen Sie "Supportticket übermitteln" aus.

Symptom

Beim Durchsuchen der App werden die Seiten langsam geladen und haben manchmal einen Timeout.

Ursache

Diese Fehler sind häufig auf Probleme auf der Anwendungsebene zurückzuführen, z. B.:

  • Netzwerkanforderungen dauern lange
  • Ineffiziente Anwendungscodes oder Datenbankabfragen
  • Anwendung mit hohem Arbeitsspeicher/CPU
  • Anwendungsabsturz aufgrund einer Ausnahme

Schritte zur Problembehandlung

Die Problembehandlung lässt sich in diesem Fall in drei unterschiedliche Aufgaben unterteilen, die nacheinander ausgeführt werden:

  1. Beobachten und Überwachen des Anwendungsverhaltens
  2. Sammeln von Daten
  3. Minimieren der Auswirkungen des Problems

App Service bietet Ihnen bei jedem Schritt verschiedene Optionen.

Beobachten und Überwachen des Anwendungsverhaltens

Nachverfolgen der Dienstintegrität

Azure veröffentlicht jede Dienstunterbrechung oder Leistungsbeeinträchtigung. Sie können den Status des Diensts im Azure-Portal nachverfolgen. Weitere Informationen finden Sie unter Anzeigen von Dienststatusbenachrichtigungen mithilfe des Azure-Portals.

Überwachen Ihrer App

Sie können Überwachungstools im Azure-Portal verwenden, um herauszufinden, ob Ihre Anwendung Probleme hat. Wählen Sie unter "Überwachung " im Randleistenmenü "Metriken" aus. Im Dropdownmenü "Metrik " werden alle Metriken angezeigt, die Sie hinzufügen können.

Einige der Metriken, die Sie möglicherweise für Ihre App überwachen möchten, sind:

  • Durchschnittlicher Arbeitssatz für Arbeitsspeicher
  • CPU-Zeit
  • Arbeitssatz für Arbeitsspeicher
  • Anfragen
  • Antwortzeit

Screenshot des Abschnitts

Weitere Informationen finden Sie unter

Überwachen des Web-Endpunktstatus

Wenn Ihre App im Tarif Standard ausgeführt wird, können Sie mit App Service zwei Endpunkte von drei geografischen Standorten aus überwachen.

Endpunktüberwachung konfiguriert Webtests von geografisch verteilten Standorten zum Testen der Reaktionszeit und der Verfügbarkeit von Web-URLs. Der Test führt einen HTTP GET-Vorgang an der Web-URL durch, um die Antwortzeit und die Betriebszeit von jedem Standort zu bestimmen. Jeder konfigurierte Standort führt alle fünf Minuten einen Test aus.

Die Verfügbarkeit wird mit HTTP-Antwortcodes überwacht, und die Reaktionszeit wird in Millisekunden gemessen. Der Überwachungstest schlägt fehl, wenn der HTTP-Antwortcode größer als oder gleich 400 ist und die Antwort länger als 30 Sekunden benötigt. Der Endpunkt wird als verfügbar betrachtet, wenn die Überwachungstests von allen angegebenen Standorten aus erfolgreich waren.

Informationen zum Einrichten finden Sie unter Azure App Service-Kontingente und Metriken.

Anwendungsleistungsüberwachung mithilfe von Erweiterungen

Sie können die Anwendungsleistung auch mit einer Websiteerweiterung überwachen.

Jede App Service-App bietet einen erweiterbaren Verwaltungsendpunkt, mit dem Sie eine leistungsstarke Gruppe von Tools verwenden können, die als Websiteerweiterungen bereitgestellt werden. Zu den Erweiterungen zählen Folgende:

  • Quellcode-Editoren wie GitHub Codespaces.
  • Verwaltungstools für verbundene Ressourcen wie eine MySQL-Datenbank, die mit einer App verbunden ist.

Ebenfalls zur Verfügung steht Azure Application Insights, eine Websiteerweiterung für die Leistungsüberwachung. Um Application Insights zu verwenden, erstellen Sie ihren Code mit einem SDK neu. Sie können auch eine Erweiterung installieren, die Zugriff auf zusätzliche Daten bietet. Mit dem SDK können Sie Code schreiben, um die Auslastung und Leistung Ihrer Anwendung genauer zu überwachen. Weitere Informationen finden Sie in der Einführung in Application Insights – OpenTelemetry Observability.

Sammeln von Daten

App Service bietet Diagnosefunktionen zum Protokollieren von Informationen sowohl über den Webserver als auch über die Webanwendung. Die Informationen sind logisch in Webserverdiagnose und Anwendungsdiagnose unterteilt.

Aktivieren der Webserverdiagnose

Sie können die folgenden Protokollarten aktivieren oder deaktivieren:

  • Detaillierte Fehlerprotokollierung: Detaillierte Fehlerinformationen für HTTP-Statuscodes, die einen Fehler angeben (Statuscode 400 oder höher). Dies kann Informationen enthalten, die helfen können, zu bestimmen, warum der Server den Fehlercode zurückgegeben hat.
  • Fehleranforderungsablaufverfolgung: Detaillierte Informationen zu fehlgeschlagenen Anforderungen, einschließlich einer Ablaufverfolgung der IIS-Komponenten, die für die Verarbeitung der Anforderung und die in den einzelnen Komponenten benötigte Zeit verwendet werden. Dies kann hilfreich sein, wenn Sie versuchen, die App-Leistung zu verbessern oder zu isolieren, was einen bestimmten HTTP-Fehler verursacht.
  • Webserverprotokollierung: Informationen zu HTTP-Transaktionen mithilfe des erweiterten W3C-Protokolldateiformats. Dies ist hilfreich, wenn Sie allgemeine App-Kennzahlen ermitteln möchten (etwa die Anzahl der verarbeiteten Anfragen oder die Anzahl der Anforderungen von einer bestimmten IP-Adresse).

Aktivieren der Anwendungsdiagnose

Es stehen verschiedene Optionen zur Verfügung: Sie können Daten zur Anwendungsleistung von App Service sammeln, Ihre Anwendung live über Visual Studio profilen oder den Anwendungscode ändern, um weitere Informationen und Ablaufverfolgungen zu protokollieren. Sie können die Optionen abhängig von dem Umfang des Zugriffs, der Ihnen für die Anwendung zur Verfügung steht, und den Erkenntnissen, die Sie durch die Überwachungstools gewonnen haben, auswählen.

Verwenden von Application Insights Profiler

Durch die Aktivierung von Application Insights Profiler können Sie mit der Erfassung ausführlicher Leistungsablaufverfolgungen beginnen. Wenn Sie Probleme untersuchen müssen, können Sie bis zu fünf Tage rückwirkend auf Ablaufverfolgungen zugreifen. Sie können diese Option auswählen, solange Sie im Azure-Portal Zugriff auf die Application Insights-Ressource der App haben.

Application Insights Profiler stellt Statistiken zur Reaktionszeit für jeden Webaufruf und Ablaufverfolgungen bereit, die angeben, welche Codezeile die langsamen Antworten verursacht hat. Manchmal ist die App Service-App langsam, da bestimmter Code nicht performant geschrieben wird. Beispiele hierfür sind sequenzieller Code, der parallel ausgeführt werden kann, und unerwünschte Datenbanksperrkonflikte. Das Entfernen dieser Engpässe im Code erhöht die Leistung der App, aber sie sind schwer zu erkennen, ohne aufwendige Ablaufverfolgungen und Protokolle einzurichten. Durch die von Application Insights Profiler gesammelten Ablaufverfolgungen können die Codezeilen identifiziert werden, die zur Verlangsamung der Anwendung führen. So kann dieses Problem in Bezug auf App Service-Apps behoben werden.

Weitere Informationen finden Sie unter Aktivieren des .NET Profiler für Azure App Service-Apps in Windows.

Manuelles Einrichten von Diagnoseablaufverfolgungen

Wenn Sie Zugriff auf den Quellcode der Webanwendung haben, können Sie mithilfe der Anwendungsdiagnose Informationen erfassen, die von einer Webanwendung erstellt wurden. ASP.NET-Anwendungen können die Klasse System.Diagnostics.Trace verwenden, um Informationen im Anwendungsdiagnoseprotokoll aufzuzeichnen. Allerdings müssen Sie den Code ändern und die Anwendung erneut bereitstellen. Diese Methode wird empfohlen, wenn Ihre App in einer Testumgebung ausgeführt wird.

Ausführliche Anweisungen zum Konfigurieren Ihrer Anwendung für die Protokollierung finden Sie unter Aktivieren der Diagnoseprotokollierung für Apps in Azure App Service.

Verwenden des Diagnosetools

App Service stellt eine intelligente und interaktive Komponente bereit, mit der Sie eine Problembehandlung für Ihre App durchführen können, ohne dass eine Konfiguration erforderlich ist. Wenn Probleme mit Ihrer App auftreten, weist das Diagnosetool darauf hin, was falsch ist, um Sie zu den richtigen Informationen zu führen, um das Problem einfacher und schneller zu beheben und zu beheben.

Navigieren Sie für den Zugriff auf die App Service-Diagnose zu Ihrer App Service-App oder App Service-Umgebung im Azure-Portal. Wählen Sie im Randleistenmenü " Diagnostizieren" aus, und lösen Sie Probleme.

Verwenden der Kudu-Debugkonsole

App Service umfasst eine Debugkonsole zum Debuggen, Untersuchen und Hochladen von Dateien sowie JSON-Endpunkte zum Abrufen von Informationen über Ihre Umgebung. Diese Konsole wird als Kudu-Konsole oder SCM-Dashboard für Ihre App bezeichnet.

Sie können auf dieses Dashboard zugreifen, indem Sie zu Ihrer Kudu-Website wechseln.

Die Kudu-Konsole bietet z. B. folgende Funktionen:

  • Umgebungseinstellungen für Ihre Anwendung
  • Protokolldatenstrom
  • Speicherabbild zu Diagnosezwecken
  • Debugkonsole, in der Sie PowerShell-Cmdlets und grundlegende DOS-Befehle ausführen können

Eine weitere nützliche Funktion von Kudu ist die Möglichkeit, mithilfe von Kudu und dem SysInternals-Tool „Procdump“ Speicherabbilddateien zu erstellen, wenn Ihre Anwendung Ausnahmen (erste Chance) auslöst. Bei diesen Speicherabbilddateien handelt es sich um Momentaufnahmen des Prozesses, die beim Beheben komplizierterer Probleme mit Ihrer App hilfreich sein können.

Weitere Informationen zu features, die in Kudu verfügbar sind, finden Sie unter Onlinetools für Windows Azure-Websites, die Sie kennen sollten.

Abschwächung des Problems

Skalieren der App

Im App-Dienst können Sie für eine höhere Leistung und den Durchsatz die Skalierung anpassen, an der Sie Ihre Anwendung ausführen. Das Skalieren einer App umfasst zwei bezogene Aktionen: Ändern des App Service-Plans auf eine höhere Preisstufe und Konfigurieren bestimmter Einstellungen, nachdem Sie zur höheren Preisstufe gewechselt haben.

Weitere Informationen zur Skalierung finden Sie unter Skalieren einer App in Azure App Service.

Außerdem haben Sie die Möglichkeit, Ihre Anwendung auf mehreren Instanzen auszuführen. Das horizontale Hochskalieren erhöht nicht nur die Verarbeitungskapazität, sondern bietet auch ein gewisses Maß an Fehlertoleranz. Wenn der Prozess in einer Instanz ausfällt, können die anderen Instanzen weiterhin Anforderungen verarbeiten.

Sie können die Skalierung auf manuell oder automatisch festlegen.

Verwenden Sie Auto-Heal

Das automatische Wiederherstellen des Arbeitsprozesses für Ihre App basiert auf einstellungen, die Sie auswählen, z. B. Konfigurationsänderungen, Anforderungen, speicherbasierte Grenzwerte oder die Zeit, die zum Ausführen einer Anforderung erforderlich ist. Meistens ist das Recycling des Prozesses die schnellste Möglichkeit, sich von einem Problem zu erholen. Sie können die App zwar immer direkt im Azure-Portal neu starten, die automatische Reparatur führt diesen Schritt jedoch automatisch für Sie aus. Sie müssen lediglich einige Trigger in der Stammdatei „web.config“ Ihrer App hinzufügen. Diese Einstellungen funktionieren auf die gleiche Weise, auch wenn Ihre Anwendung keine .NET-App ist.

Weitere Informationen finden Sie unter Automatische Reparatur von Azure-Websites.

Neustarten der App

Ein Neustart ist oft die einfachste Methode zum Beheben einmaliger Probleme. Im Azure-Portal haben Sie die Optionen, die App zu beenden oder neu zu starten.

Screenshot der App-Menüleiste mit Stopp- und Neustartschaltflächen.

Sie können Ihre App auch mit Azure PowerShell verwalten. Weitere Informationen finden Sie unter Verwalten von Azure-Ressourcen mithilfe von Azure PowerShell-.