Problembehandlung bei langsamer Seitenantwort und Blockaden

Gilt für: Internetinformationsdienste (Internet Information Services, IIS), ASP.NET, ASP.NET Core

Dieser Artikel enthält Anleitungen zum Sammeln und Analysieren von Daten zur Problembehandlung bei langsamen Seitenantworten und Hang-Problemen.

Ermitteln des richtigen Handbuchs zur Problembehandlung

Die Seiten slowness and hangs might be accompanied by one or more of the following conditions. Es ist wichtig, diese Bedingungen zu identifizieren, damit Sie ihre Problembehandlung entsprechend konzentrieren können. Ermitteln Sie, welche dieser Bedingungen am ehesten das Problem beschreibt, das Sie behandeln, und befolgen Sie den entsprechenden Leitfaden zur Problembehandlung.

Datensammlung

Hier ist eine Liste nützlicher Daten, die für eine langsame Seitenantwort oder Hang-Situation gesammelt werden können. Nicht alle diese Daten sind für jedes Problem erforderlich. Je nach Situation können Sie Daten sammeln.

IIS-Protokoll-Catcher

Iis Log Catcher sammelt verschiedene Verlaufsprotokolle und Konfigurationsdaten gleichzeitig, einschließlich der IIS-Webprotokolle, die besonders hilfreich für die Diagnose von Problemen mit langsamen Seitenantworten sind. Außerdem werden alle .config Dateien gesammelt, die ihnen dabei helfen können, die verschiedenen Webanwendungen auf dem Server und deren Konfiguration zu verstehen. Wenn die FREB-Protokollierung bereits konfiguriert ist, sind FREB-Protokolle auch in IIS-Protokollfängerdaten enthalten. Iis Log Catcher sammelt auch die System- und Anwendungsereignisprotokolle.

Laden Sie das IIS Log Catcher Tool herunter, und verwenden Sie es, um Daten zu sammeln, indem Sie den Anweisungenfolgen.

Konfigurationsdateien

applicationhost.config und web.config werden als Teil der IIS-Protokoll-Catcher-Daten erfasst. Diese Dateien sind nützlich, um die Konfiguration von IIS und die einzelnen Webanwendungen auf dem Server zu verstehen.

Wenn das IIS-Protokoll-Catcher-Tool die Konfigurationsdateien nicht automatisch erfasst, müssen Sie sie manuell sammeln.

Die applicationhost.config Datei befindet sich unter c:\windows\system32\inetsrv\config\. Die web.config Dateien befinden sich im Stammverzeichnis jeder Anwendung. For example, for the Default Web Site's application, the web.config file is in c:\inetpub\wwwroot. Die Stammverzeichnisse für Anwendungen befinden sich möglicherweise überall im Dateisystem. Um das Stammverzeichnis einer bestimmten Website zu identifizieren, überprüfen Sie die applicationhost.config Datei für die Website- und deren physicalPath- attribut oder überprüfen Sie die Einstellungen im IIS-Manager.

IIS-Webprotokolle (W3SVC-Protokolle)

Sammeln Sie IIS-Protokolle aus einer Zeit, in der die Langsamkeit auftritt. Dies kann hilfreich sein, um zu bestätigen, dass das zeitgesteuerte Feld die Langsamkeit widerspiegelt. Es kann auch hilfreich sein, die Seite oder Seiten einzugrenzen, die langsam reagieren.

Wenn das IIS-Protokoll-Catcher-Tool die Webprotokolle nicht automatisch erfasst, müssen Sie sie manuell sammeln.

Standardmäßig befinden sich diese Protokolle in c:\inetpub\logs\logfiles. Jede Website verfügt über ein eigenes Verzeichnis mit dem Namen W3SVC#-, wobei die # die SiteID-ist. Der Protokollspeicherort kann jedoch angepasst werden. Um die benutzerdefinierten Protokollspeicherorte zu finden, müssen Sie möglicherweise die applicationhost.config Datei für die logFile- und Verzeichniseinstellungen überprüfen, die angeben, wo die Protokolle gespeichert sind.

Windows-System-, Anwendungs- und Sicherheitsereignisprotokolle

Diese werden als Teil der IIS-Protokoll-Catcher-Daten erfasst. Obwohl die Ereignisprotokolle in der Regel nicht bei der Problembehandlung bei langsamen Seitenantworten und -blockaden verwendet werden, empfiehlt es sich, sie weiterhin zu sammeln, da sie später bei der Problembehandlung verwendet werden können.

Wenn das IIS-Protokoll-Catcher-Tool keine Ereignisprotokolle automatisch sammelt, müssen Sie sie manuell sammeln.

Erfassen Sie Ereignisprotokolle direkt aus der Ereignisanzeige. Speichern Sie sie als .evtx Dateien, und zeigen Sie sie in der Ereignisanzeige auf Ihrem eigenen Server an.

Fiddler-Toolablaufverfolgung oder Microsoft Edge HAR-Ablaufverfolgung

Die Zeitachsenansicht in diesen Ablaufverfolgungen kann Ihnen helfen, die Seite oder Seiten in der Webanwendung langsam einzugrenzen. Dies hilft beim Sammeln von FREB-Protokollen nur langsamer Seiten.

Fiddler Classic ist eine Browsererweiterung von Drittanbietern, die als Proxy für Ihren Browser fungiert. Fiddler beginnt mit dem Sammeln von Daten, sobald es geöffnet wird. Führen Sie die folgenden Schritte aus, um Ablaufverfolgungen von SSL-verschlüsselten Anforderungen mithilfe von Fiddler Classic zu sammeln:

  1. Laden Sie Fiddler Classicherunter und installieren Sie sie.
  2. Öffnen Sie Fiddler Classic, wählen Sie Tools>Optionen>HTTPS-aus, und aktivieren Sie sowohl das Kontrollkästchen HTTPS CONNECTs erfassen und HTTPS-Datenverkehr entschlüsseln.
  3. Wählen Sie OK aus.
  4. Reproduzieren Sie die Langsamkeit beim Ausführen von Fiddler.
  5. Wählen Sie Datei>Speichern>Alle Sitzungen aus, um alle Sitzungen als .saz Datei zu speichern.

Microsoft Edge- oder Chrome-Browser können HAR-Ablaufverfolgungen direkt sammeln. Führen Sie die folgenden Schritte aus, um HAR-Ablaufverfolgungen zu sammeln:

  1. Öffnen Sie Ihren Browser, und wählen Sie F12- aus, um Entwicklertools zu öffnen.
  2. Wählen Sie Netzwerk->Protokoll-beibehalten aus.
  3. Reproduzieren Sie das Langsamkeitsproblem.
  4. Wählen Sie HAR- exportieren aus, um die Ablaufverfolgung als .HAR Datei zu speichern. .HAR Dateien können zur späteren Überprüfung in Microsoft Edge oder Chrome importiert werden.

FreB-Protokolle (Failed Request Trace)

FREB-Protokolle können dabei helfen, zu ermitteln, welches IIS-Modul die längste Verarbeitung der Anforderung benötigt. Sie kann die Langsamkeit bei der Authentifizierung oder im Anwendungscode selbst identifizieren.

Fehler bei der Anforderungsablaufverfolgung ist ein IIS-Modul. Sie ist für die Verwendung verfügbar, wenn das Ablaufverfolgungsmodul installiert ist. Die Ablaufverfolgung kann über den Server-Manager oder durch Ausführen des folgenden PowerShell-Befehls installiert werden:

Add-WindowsFeature -Name Web-Http-Tracing 

Bevor Sie eine FREB-Regel konfigurieren, überprüfen Sie die W3SVC-Protokolle, um Anforderungen zu identifizieren, die lange zeitlang dauern. Identifizieren Sie einzelne Seitenanforderungen, die mit dem cs-uri-stem und den time-taken Feldern langsam sind.

  • Wenn Sie einige bestimmte Seiten identifizieren können, die langsam sind, eine FREB-Regel für die jeweilige Seite oder Seiten erstellen. Wenn Sie die Regel für eine bestimmte Seite erstellen, verwenden Sie in der FREB-Regel keine Zeit. Verwenden Sie stattdessen den Statuscode aus den W3SVC-Protokollen.

  • Wenn Sie eine bestimmte Seite zum Erstellen der FREB-Regel nicht identifizieren können, können Sie alle Inhalte verwenden und stattdessen eine Zeit angeben, die in der FREB-Regel benötigt wird. Dadurch erhalten Sie Protokolle aller Anforderungen, die mehr als die angegebene Zeit dauern, bis sie abgeschlossen werden.

    Hinweis

    Diese Methode kann Ihnen falsch positive Ergebnisse geben. Beachten Sie außerdem, dass beim Erstellen von FREB-Protokollen basierend auf der Zeit das Protokoll endet, wenn die Anforderung die angegebene Zeit erreicht. Wenn die angegebene Zeit zu kurz ist, können Sie nicht erkennen, wo die Langsamkeit auftritt.

Das Problem ist fortlaufend, einfach zu reproduzieren oder häufig

Hinweis

FREB-Protokolle, die von einer Statuscoderegel ausgelöst werden, bieten eine Ansicht aller Module, die entlang der IIS-Pipeline während einer gesamten Anforderungsdauer auftreten, zusammen mit der Zeit, die jedes Modul benötigt.

FREB-Protokolle, die durch eine bestimmte Zeitaufwand-Wertregel (z. B. 20 Sekunden) ausgelöst werden, zeigen nur Informationen bis zu diesem Wert an. Dies bedeutet, dass alles, was diese Anforderung über diese Zeit hinausgeht, im Protokoll nicht verfügbar ist.

  • Wenn die Antwort nach einiger Verzögerung empfangen wird (z. B. 30 Sekunden), führen Sie die folgenden Schritte aus, um das Problem zu diagnostizieren:

    1. Überprüfen Sie den Statuscode der empfangenen Antwort.

      Verwenden Sie Browserentwicklertools oder IIS-Protokolle, um den Statuscode der verzögerten Antwort zu ermitteln.

    2. Konfigurieren von FREBs basierend auf dem Statuscode in Schritt 1.

    3. Zeigen Sie die generierten FREBs an, um zu verstehen, welches Modul die Langsamkeit verursacht.

      Wenn Sie nicht mit der Interpretation von FREBs vertraut sind, lesen Sie Lesen eines FREB-Protokolls, einer Fehleranforderungsablaufverfolgung: Iis-Anforderungsverarbeitungspipelineausführung.

    Wenn Sie feststellen, dass ein Drittanbietermodul die Langsamkeit verursacht, wenden Sie sich an den Drittanbieter, um das Problem zu untersuchen. Wenn die Langsamkeit jedoch auf Ihren Anwendungscode zurückzuführen ist, müssen Sie Speicherabbilder für weitere Untersuchungen sammeln.

  • Wenn überhaupt keine Antwort empfangen wird (vollständig hängen) oder nach sehr langer Zeit empfangen wird, führen Sie die folgenden Schritte aus, um das Problem zu diagnostizieren:

    1. Konfigurieren von FREBs basierend auf einer bestimmten zeitbezogenen Regel.

      Der für FREB-Protokolle festgelegte Zeitschwellenwert sollte höher sein als normale oder akzeptable Zeit für die Antwort. Wenn Sie wissen, dass es normal ist und erwartet wird, dass eine Antwort 10 Sekunden dauert, konfigurieren Sie FREBs eine höhere Zahl wie 20 Sekunden oder 30 Sekunden.

    2. Fahren Sie mit den gleichen Analyseschritten fort, wie oben erwähnt.

Das Problem ist zeitweise oder schwer zu reproduzieren

Wenn ein Problem zeitweise oder schwer zu reproduzieren ist, kann das Warten darauf, dass es erneut auftritt, nur um FREB-Protokolle zu sammeln, ineffizient sein. Es kann Wochen oder Monate dauern, bis das Problem erneut auftritt, und wenn FREB-Protokolle nicht ausreichen, müssen Sie erneut warten, um Speicherabbilder zu sammeln. Um diese Verzögerung zu vermeiden, empfiehlt es sich, Speicherabbilder während des ersten Auftretens des Problems zu generieren.

Wenn Anforderungen normalerweise Millisekunden dauern, aber gelegentlich 1 oder ein paar Sekunden dauern, kann es schwierig sein, diese Langsamkeit zu untersuchen. Das Generieren von Speicherabbildern in solchen langsamen Zeiträumen ist möglicherweise nicht praktikabel, da:

  • Debugger fügen Mehraufwand hinzu, was zu einer gewissen Langsamkeit beitragen kann.
  • Die ursprüngliche Langsamkeit und der Aufwand können sich überlappen.
  • Das Generieren mehrerer Speicherabbilder innerhalb einer Anforderungsdauer ist möglicherweise nicht an erster Stelle möglich.

Sie können perfView stattdessen perfView verwenden, um ETW-Ablaufverfolgungen zu sammeln. Möglicherweise sind Sie jedoch bei der Untersuchung immer noch sehr begrenzt, wenn die Zeit zu verteilt ist, anstatt sich auf einen bestimmten Vorgang zu konzentrieren.

Überprüfen Sie immer IIS-Protokolle auf sehr langsame Anforderungen und beheben Sie sie, da dies indirekt kürzere Langsamkeitsprobleme lösen kann.

Detaillierte Schritte zum Sammeln von FREB-Protokollen basierend auf der Zeit

Wichtig

Um FREB-Protokolle zu konfigurieren, stellen Sie sicher, dass der Ablaufverfolgungsrollendienst für IIS installiert ist.

Führen Sie die folgenden Schritte aus, um den Ablaufverfolgungsrollendienst für IIS zu installieren:

  1. Öffnen Sie Server-Manager, und wählen Sie "Rollen und Features>aus.
  2. Wählen Sie im Fenster "Rollen und Features hinzufügen" "Weiter" aus, bis Sie die Seite "Serverrollen" erreicht haben.
  3. Erweitern Sie den Webserverstatus>> und die Diagnose, und aktivieren Sie das Kontrollkästchen "Ablaufverfolgung".
  4. Wählen Sie "Weiter" für die nachfolgenden Schritte aus, und wählen Sie dann "Installieren" aus.

Nachdem der Rollendienst für die Ablaufverfolgung installiert wurde, führen Sie die folgenden Schritte aus, um FREB zu erfassen:

  1. Öffnen Sie das Befehlsfenster ausführen .

  2. Starten Sie inetmgr.

  3. Erweitern Sie im IIS-Manager unter dem Bereich "Verbindungen " den Computernamen, erweitern Sie "Websites", und wählen Sie dann die Zielwebsite aus.

    Screenshot der Zielwebsite im IIS-Manager.

  4. Doppelklicken Sie auf Regeln für die Ablaufverfolgung fehlgeschlagener Anforderungen.

    Screenshot der Startseite der Standardwebsite.

  5. Wählen Sie im Bereich "Aktionen" die Option "Hinzufügen" aus.

  6. Wählen Sie im Assistenten zum Hinzufügen der Regel zur Ablaufverfolgung von Fehlgeschlagenen Anforderungen auf der Seite "Inhalt zur Ablaufverfolgung angeben" die Option "Alle Inhalte> aus.

    Screenshot der Seite

  7. Aktualisieren Sie auf der Seite Ablaufverfolgungsbedingungen Seite die Zeit, die Feld benötigt wird, je nachdem, wie Sie die Anforderung oder Seite notieren, und wählen Sie Nächsteaus.

    Wenn die Anforderung in der Regel weniger als eine Sekunde dauert, aber jetzt 20 Sekunden dauert, geben Sie 20 in das Feld Zeitaufwand ein.

  8. Aktivieren Sie auf der Seite "Ablaufverfolgungsanbieter auswählen" unter "Anbieter" alle Kontrollkästchen. Stellen Sie unter "Bereiche" sicher, dass alle Kontrollkästchen für jeden Anbieter aktiviert sind. Wählen Sie unter Ausführlichkeit die Option Ausführlich aus. Wählen Sie Fertig stellen aus.

  9. Aktivieren Sie die Ablaufverfolgung fehlgeschlagener Anforderungen für die Website, und konfigurieren Sie das Protokolldateiverzeichnis:

    1. Erweitern Sie im Bereich "Verbindungen" den Computernamen, erweitern Sie "Websites", und wählen Sie dann "Standardwebsite" aus.

    2. Wählen Sie im Bereich "Aktionen" unter "Konfigurieren" die Option "Ablaufverfolgung fehlgeschlagener Anforderungen" aus.

      Screenshot der Option

    3. Aktivieren Sie im Dialogfeld Einstellungen für die Ablaufverfolgung der Websitefehleranforderung das Kontrollkästchen "Aktivieren", legen Sie das Verzeichnisfeld auf "%SystemDrive%\inetpub\logs\logs\FailedReqLogFiles" fest, und legen Sie die maximale Anzahl von Ablaufverfolgungsdateien auf 1000 fest.

      Screenshot des Fensters

    4. Wählen Sie OK aus.

Vollständiges Benutzermodusprozessabbild

Eine Reihe von Prozessabbildern (2-4), die ausgeführt werden, wenn Anforderungen langsam oder hängend sind, können Ihnen mitteilen, welcher Methodenaufruf in der Anwendung langsam ist. Es kann auch auf Verzögerungen bei Remoteanforderungen an Remotewebdienste oder Back-End-Datenbanken hinweisen.

Das Problem ist leicht zu reproduzieren

Wenn das Problem reproduziert werden kann oder derzeit auftritt, können Sie mehrere manuelle Abbilder des Arbeitsprozesses erfassen, der den App-Pool hostet.

Versuchen Sie, ungefähr 30 Sekunden auseinander zu stellen, aber achten Sie auf die totale Langsamkeit. Wenn die Gesamtdauer der Langsamkeit kürzer ist (z. B. insgesamt 20 bis 30 Sekunden), werden Raumabbilder näher zusammen zusammengestellt, um mindestens zwei Dumps innerhalb des langsamen Zeitraums zu passen.

Optional kann ProcDump verwendet werden, insbesondere wenn Sie DebugDiag nicht auf dem Server installieren oder die Installation erfordert.

Wenn das Problem zeitweiser ist, sollten Sie sowohl FREB-Ablaufverfolgungen als auch Dumps erfassen. Oder wenn die Verwendung von ProcDump einfacher ist, führen Sie die Schritte im Konfigurieren von FREB aus, um Speicherabbilder mithilfe von ProcDump.exe Abschnitt auszulösen (Einrichten von FREB für zeitaufgenommene Zeit anstelle von Statuscode).

Problem ist nicht einfach zu reproduzieren

Wenn das Problem nicht einfach reproduziert wird, können Sie mithilfe der FREB-Regel Dumps basierend auf der benötigten Zeit generieren. Weitere Informationen finden Sie unter Verwenden von FREB zum Generieren eines Dumps für eine lange ausgeführte Anforderung.

Wichtig

Passen Sie beim Einrichten von FREB für zeitaufwendigen Zeitpunkt die benötigte Zeit an, je nachdem, wie langsam antworten. Dadurch wird sichergestellt, dass nur problematische Anforderungen erfasst werden und falsch positive Ergebnisse minimiert werden.

Deadlock festgestellte Blockaden

Vorsicht

  • Wenn die Langsamkeit von hoher CPU begleitet wird, vermeiden Sie das Sammeln von Protokollen, wenn die CPU-Auslastung extrem hoch ist (z. B. >=95), da dies dazu führen kann, dass der Server aufgrund unzureichender CPU-Ressourcen Protokolle abhängt oder nicht erfasst.

  • Wenn Sie Protokolle manuell sammeln, stellen Sie sicher, dass die CPU-Auslastung niedriger als der Schwellenwert ist, um den RDP-Zugriff auf den Server zu erleichtern. Versuchen Sie bei Bedarf, den Anwendungspool vor der Protokollsammlung wiederzuverwerten, beachten Sie jedoch die Auswirkungen auf vorhandene Anforderungen, und erläutern Sie dies den Kunden.

  • Wenn die CPU einen solchen Wert innerhalb weniger Sekunden nach dem Recycling erreicht, erwägen Sie, die Last für den Prozess zu verringern (ob es sich um einen Auslastungstest oder eine Produktionslast handelt).

  • Wenn die Langsamkeit von hohem Arbeitsspeicher begleitet wird, versuchen Sie, Speicherabbilder bei hoher w3wp.exe Speicherauslastung wie >10 GB (oder hohe Gesamtauslastung des Serverspeichers > 95%) zu vermeiden. Wenn Probleme bei geringerem Arbeitsspeicher reproduziert werden können, sollten Sie den App-Pool wiederverwerten oder die Last verringern, wenn dies wie erwähnt hilfreich ist.

  • Verwenden Sie den Task-Manager nicht, um Dumps zu sammeln. Obwohl die generierten Dumps manchmal nützlich sind, sind sie in vielen Fällen nicht hilfreich. Spezialisiertere Tools wie DebugDiag und Procdump besitzen ein besseres Verständnis von verwaltetem Code und können detailliertere Informationen speziell zu ASP.NET-Anwendungen bereitstellen. Darüber hinaus kümmern sich diese beiden Tools um die Prozessbitheit, und Sie müssen sich keine Sorgen machen. Während im Task-Manager 64-Bit-Prozess zum Generieren von Dumps eines 32-Bit-Prozesses verwendet wird oder umgekehrt, sind die Dumps nutzlos.

Andere Daten

Sammeln Sie bei Bedarf die folgenden Datenoptionen:

  • PerfView-Ablaufverfolgungen

    PerfView kann zu langsamen Leistungsproblemen innerhalb der Webanwendung selbst beitragen. PerfView-Ablaufverfolgungen werden während einer Zeit der Langsamkeit gesammelt. Diese Ablaufverfolgungen zeigen die einzelnen Methoden oder Funktionen, die langsam sind.

  • Netzwerkablaufverfolgung

    Netzwerkablaufverfolgungen sind hilfreich, wenn die Reaktion auf langsame Seiten nachverfolgt und mit Netzwerkproblemen verknüpft ist.

  • Protokoll zur Leistungsüberwachung

    Die PerfMon-Protokollierung ist hilfreich beim Nachverfolgen der langsamen Seitenantwort und hängt mit hoher CPU- oder hoher Arbeitsspeicherauslastung zusammen.

Zeitauslöserbetrag

Um das Problem zu beheben, ist es wichtig, den geeigneten Zeitwert zu ermitteln, der die Generierung von Speicherabbildern auslöst.

Dies umfasst das Verständnis der Reaktionszeiten ihrer Iis-Protokolle (Internet Information Services) in Zeiträumen, in denen das Problem vorhanden war und wann es nicht war.

Führen Sie die folgenden Schritte aus, um den entsprechenden Zeitauslöser zu identifizieren:

  1. Überprüfen von IIS-Protokollen:

    Analysieren Sie Ihre IIS-Protokolle über verschiedene Zeitbereiche, um die Reaktionszeiten zu beobachten. Ermitteln Sie, was die erwartete Antwortzeit unter normalen Umständen ist.

  2. Identifizieren von Antwortzeitunterschieden:

    Beachten Sie beim Auftreten des Problems die mindesten, maximalen und häufigsten Reaktionszeiten.

  3. Festlegen eines auslösenden Ziels:

    Zielen Sie darauf ab, mindestens zwei aufeinander folgende Speicherabbilder während des Zeitraums zu generieren, in dem die langsame Anforderung aktiv ist.

    Wenn es z. B. typisch ist, dass eine Antwort 10 Sekunden dauert, konzentrieren Sie sich auf Antwortzeiten, die diese Dauer überschreiten. Wenn ein Problem dazu führt, dass die Reaktionszeit auf 60 Sekunden oder mehr verlängert wird, erfassen Sie Speicherabbilder in Intervallen wie 30, 40 und 50 Sekunden.

  4. Vermeiden Sie falsch positive Ergebnisse:

    Es ist wichtig, ein Speicherabbild zu geringfügig höheren Zeiten wie 11 oder 12 Sekunden zu initiieren, da dies zu falsch positiven Ergebnissen führen kann. Ziel ist es, die Dumps während des problematischen Zeitraums zu erfassen, ohne den Antrag vorzeitig abzuschließen.

  5. Identifizieren sie das Timing von Dumps:

    Stellen Sie sicher, dass Dumps nicht am Ende der Lebensdauer der Anforderung ausgelöst werden, da die Anforderung möglicherweise abgeschlossen ist, bevor nachfolgende Abbilder generiert werden.

  6. Die häufigsten langsamen Antworten auswerten:

    Wenn die langsamste Antwortzeit nicht häufig auftritt, konzentrieren Sie sich auf die häufigste langsame Antwortzeit, die in den IIS-Protokollen beobachtet wird.

Hinweis

  • Möglicherweise benötigen Sie mehrere Versuche, um einen guten Satz von Speicherabbildern zu erhalten, die nützlich sind.
  • Stellen Sie sicher, dass genügend Speicherplatz auf dem Laufwerk vorhanden ist, das Sie für die Aufbewahrung der generierten Speicherabbilder auswählen. Jedes Speicherabbild ist dieselbe Größe wie der Prozess zum Zeitpunkt der Generierung. Wenn die Größe des Prozesses zum Zeitpunkt der Speicherabbildgenerierung beispielsweise 1 GB beträgt, benötigt das Generieren von drei Dumps 4 GB Speicherplatz.

Manuelles Generieren von Speicherabbildern mithilfe von DebugDiag

Wenn Sie die langsame Anforderung auslösen und wissen, wie lange angehalten werden soll, bevor Sie die Generierung von Speicherabbildern starten, führen Sie die folgenden Schritte aus.

Wenn Sie die Anforderung nicht auslösen können (z. B. ist der Client eine mobile App, Sie haben keinen Zugriff darauf, und das Problem kann nicht nur aus dem Browser reproduziert werden), aber durch einige Mittel wissen, wann das Problem auftritt, führen Sie die folgenden Schritte aus, um die Langsamkeit zu bestätigen:

  1. Führen Sie die folgenden Schritte aus, um den Anforderungsmonitor zu aktivieren:

    1. Öffnen Sie den Server-Manager.
    2. Wählen Sie in der oberen rechten Ecke verwalten aus, und wählen Sie Hinzufügen von Rollen und Features>Nextaus.
    3. Wählen Sie im Fenster Assistenten zum Hinzufügen von Rollen und Featuresrollenbasierte oder featurebasierte Installation>Nextaus.
    4. Wählen Sie den Server aus, den Sie aus dem Serverpool konfigurieren möchten.
    5. Erweitern Sie im Abschnitt Auswählen von ServerrollenWebserver (IIS)>Webserver>Integritäts- und Diagnose-.
    6. Aktivieren Sie unter Integritäts- und Diagnose-das Kontrollkästchen Monitor anfordern.
    7. Wählen Sie Next>Next>Install aus, um das Feature "Anforderungsüberwachung" zu aktivieren.

Nach Abschluss der Installation müssen Sie IIS möglicherweise neu starten. Sie können es neu starten, indem Sie eine Eingabeaufforderung öffnen und iisreset.exeeingeben.

  1. Öffnen Sie den IIS-Manager, und wählen Sie den Servernamen auf der linken Seite aus.
  2. Doppelklicken Sie auf Arbeitsprozesse.
  3. Doppelklicken Sie auf den betreffenden Anwendungspool, und wählen Sie die spalte verstrichene Zeit aus.

Weitere Informationen finden Sie unter Verwenden von RSCA, um zu verstehen, was Ihre IIS-Serveranforderungen.

Wenn die Langsamkeit bestätigt wird, nehmen Sie die Speicherabbilder manuell. Dies garantiert jedoch nicht, dass die Dumps während der Lebensdauer dieselbe problematische Anforderung enthalten und daher mehrere Versuche erforderlich sind, wenn Dumps manuell durchgeführt werden (auch wenn automatisierte, manchmal mehrere Versuche erforderlich sind).

Führen Sie die folgenden Schritte aus, um die Speicherabbilder manuell auszuführen:

  1. Laden Sie das Debug-Diagnosetool v2 Update 3.2 herunter, und installieren Sie es.

  2. Wenn ein Speicherverlust auftritt, öffnen Sie die DebugDiag 2-Sammlung im Startmenü :

    Screenshot der DebugDiag 2-Auflistung.

    Hinweis

    Wenn Sie den Pfad ändern müssen, in dem Speicherabbilder generiert werden, wählen Sie >>" aus, um den Ordner zu ändern.

  3. Wählen Sie die Registerkarte "Prozesse " aus.

  4. Suchen Sie den w3wp-Prozess mit der Spalte "Prozess-ID " der betreffenden Anwendung.

    Ersetzen Sie durch <PID> die tatsächliche PID des w3wp.exe Prozesses, der dem Hohen Speicherproblem ausgesetzt ist. Weitere Informationen zum Abrufen der PID finden Sie in den Schritten zum Identifizieren der hohen Speicherauslastung.

  5. Klicken Sie mit der rechten Maustaste auf den W3WP-Prozess , wählen Sie "Userdump-Serie erstellen" aus, und legen Sie die folgenden Optionen fest (passen Sie die Zahlen nach Bedarf an). Wählen Sie "Speichern und Schließen" nicht aus.

    Screenshot der Reihe

  6. Reproduzieren Sie die Langsamkeit, und wählen Sie Speichern & schließen aus, wenn die Anforderungen langsam sind.

    Wenn Sie nicht wissen, wie Sie die Langsamkeit reproduzieren und es schnell und häufig auftritt, warten Sie, bis die Langsamkeit beginnt, bevor Sie Speichern & Schließenauswählen. Dumps beginnen mit der Erfassung, sobald Speichern & Schließen ausgewählt ist.

Konfigurieren von FREB zum Auslösen von Speicherabbildern mithilfe von ProcDump.exe

Dieser Abschnitt enthält schrittweise Anleitungen zum Konfigurieren von Regeln für die Fehleranforderungsablaufverfolgung (Failed Request Tracing Rules, FREB), um Speicherabbilder mithilfe von ProcDump.exeauszulösen. Dieser Ansatz ist besonders hilfreich, wenn Sie bestimmte Anwendungen wie DebugDiag nicht auf dem Server installieren können.

Führen Sie die folgenden Schritte aus, um FREB so zu konfigurieren, dass eine benutzerdefinierte Aktion wie ProcDump.exeausgeführt wird, um Speicherabbilder zu generieren, wenn bestimmte Regeln erfüllt sind.

  1. Konfigurieren von FREBs für den entsprechenden Anforderungszeitwert. Stellen Sie sicher, dass Sie eine zeitgesteuerte Regel anstelle eines Statuscodes festlegen.

  2. Führen Sie die folgenden Schritte aus, um benutzerdefinierte Aktionen zu aktivieren:

    1. Öffnen Sie den IIS-Manager, und wählen Sie den Servernamen auf der linken Seite des Bildschirms aus.

    2. Doppelklicken Sie auf das Symbol Konfigurations-Editor.

    3. Navigieren Sie zum Abschnitt applicationHost/sites, und wählen Sie dann die Schaltfläche ... (Auslassungspunkte) aus.

      Screenshot des Konfigurations-Editors.

    4. Wählen Sie die Website aus, zu der Sie bereits die Regel für fehlgeschlagene Ablaufverfolgung hinzugefügt haben.

      Screenshot des Sammlungs-Editors.

    5. Legen Sie customActionsEnabled- auf Truefest.

    6. Laden Sie ProcDump- herunter, und kopieren Sie die ausführbare Datei in den pfad C:\procDump. Erstellen Sie ein Verzeichnis mit dem Namen myDumps- unter dem Laufwerk C:\.

      Warnung

      Sie müssen das ProcDump-Tool in einem Ordnerpfad platzieren, der keine Leerzeichen enthält. Andernfalls ist es unmöglich, ProcDump über FREB auszuführen. Beispielsweise ist "C:\procDump"- ein guter Pfadordner, während "C:\Process Dump"- nicht vorhanden ist.

  3. Geben Sie die benutzerdefinierte Aktion für ProcDump an:

    1. Geben Sie die Aktion auf Server- oder Standortebene an, und wählen Sie die Schaltfläche ... aus, wie im folgenden Screenshot gezeigt:

      Screenshot des Konfigurations-Editors auf Serverebene.

    2. Wählen Sie den Link Hinzufügen unter dem Bereich Aktion aus, und füllen Sie die Eigenschaften aus, wie im folgenden Screenshot gezeigt:

      Screenshot der Eigenschaften im Sammlungs-Editor.

      • CustomActionExe: Legen Sie den Wert auf den Pfad der ausführbaren Datei ProcDump fest.

      • customActionParams: Legen Sie den Wert auf -accepteula -ma %1% C:\myDumps -n 3fest.

        Mit diesem Befehl werden drei aufeinander folgende Abbilder generiert, die um 10 Sekunden lang sind. Wenn Sie den Abstand ändern müssen, fügen Sie -s gefolgt von der Anzahl der Sekunden hinzu.

Datenanalyse

Dieser Abschnitt enthält Anleitungen zur Verwendung verschiedener Tools zum Analysieren von Daten zur Diagnose und Problembehandlung bei langsamen Seitenantworten und Zum Auflegen von Problemen in IIS.

IIS-Webprotokolle (W3SVC-Protokolle)

Wenn Sie W3SVC-Protokolle analysieren, gibt es ein paar Ziele.

  • Überprüfen Sie, ob Anforderungen langsam ausgeführt werden. Überprüfen Sie die zeitbezogenen Werte, um zu bestätigen, wie lange Anforderungen ausgeführt werden.
  • Identifizieren Sie, welche Seiten langsam ausgeführt werden. Verwenden Sie in Verbindung mit der zeitgesteuerten Zeit die cs-uri-stem Werte, um langsame Seiten anhand des Namens zu identifizieren.

Die benötigte Zeit wird in Millisekunden protokolliert. 1000 Millisekunden = 1 Sekunde. Wenn Sie nach Anforderungen suchen, die mehr als 30 Sekunden dauern, suchen Sie nach zeitbezogenen Werten, die größer als 30.000 Millisekunden sind.

Es gibt zwei Tools zum Analysieren von W3SVC-Protokollen, Excel- und Log Parser 2.2-.

Analysieren eines einzelnen W3SVC-Protokolls mithilfe von Excel

Führen Sie die folgenden Schritte aus, um ein einzelnes W3SVC-Protokoll mit Excel zu analysieren:

  1. Öffnen Sie W3SVC-Protokolle in Excel.
  2. Markieren und löschen Sie die obersten drei Zeilen (alle sollten mit einem # Zeichen beginnen). Achten Sie darauf, die Zeile beizubehalten, die mit #Fieldsbeginnt.
  3. Wählen Sie die Spalte Aaus. Wählen Sie im Menüband DatenText in Spaltenaus.
  4. Wählen Sie in Assistenten zum Konvertieren von Text in Spaltengetrennten>Nächstenaus.
  5. Aktivieren Sie in Trennzeichendas Kontrollkästchen Leerzeichen, und deaktivieren Sie alle anderen Prüfungen, und wählen Sie dann Endeaus.
  6. Wählen Sie die Zelle A1aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Kontextmenü Löschen aus.
  7. Wenn Sie dazu aufgefordert werden, wählen Sie Zellen nach links verschiebenaus.
  8. Wählen Sie die Zeile 1aus. Wählen Sie im Menüband Daten Filteraus.

Jetzt können Sie die Filter verwenden, um alle Anforderungen zu identifizieren, die größer als die gewünschte Anzahl von Sekunden sind.

Analysieren mehrerer W3SVC-Protokolle mithilfe des Protokollparsers

Wenn Sie mehrere Protokolle zum Analysieren oder eine einzelne Protokolldatei haben, die zu groß ist, um von Excel geöffnet werden zu können, sollten Sie Log Parser 2.2 (Microsoft Download Center)verwenden. Es ist ein leistungsfähiges Tool, mit dem Sie SQL-formatierte Abfragen ausführen können, um Daten aus verschiedenen Arten von Protokolldateien zu extrahieren, einschließlich W3SVC-Protokollen.

Führen Sie die folgenden Schritte aus, um Log Parser 2.2 zu verwenden:

  1. Laden Sie Log Parser 2.2 (Microsoft Download Center)herunter, und installieren Sie es.

  2. Öffnen Sie die Eingabeaufforderung, und navigieren Sie zum Protokollparser-Installationsverzeichnis.

  3. Führen Sie Abfragen im Fenster Eingabeaufforderung aus. Hier sind einige Abfragebeispiele:

    • Die am häufigsten angeforderten Seiten

      "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" -i:W3C -o:CSV "SELECT TOP 100 cs-uri-stem as URL-Requested, COUNT(*) AS Num-Requests, MAX(time-taken) As Max-Time-Taken, MIN(time-taken) As Min-Time-Taken, Avg(time-taken) As Average-Time-Taken FROM *.log GROUP BY URL-Requested ORDER By Num-Requests DESC" -q:ON > Top100Pages.csv 
      
    • Langsamste Seiten

      REM "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" -i:W3C -o:CSV "SELECT TOP 25 cs-uri-stem as URL-Requested, COUNT(*) AS Num-Requests, MAX(time-taken) As Max-Time-Taken, MIN(time-taken) As Min-Time-Taken, Avg(time-taken) As Average-Time-Taken FROM *.log GROUP BY URL-Requested ORDER By Average-Time-Taken DESC" -q:ON > Slowest25Pages.csv 
      
    • ALLE Anforderungen über 15 Sekunden

      REM "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" -i:W3C -o:W3C "SELECT * FROM *.log WHERE Time-Taken > 14999 ORDER BY Time-Taken DESC" -q:ON > LongRunningRequests.log 
      

Fiddler-Ablaufverfolgungen oder HAR-Ablaufverfolgungen von Microsoft Edge oder Chrome

Fiddler Classic verfügt über einige Optionen zum Anzeigen von Leistungsinformationen. Nachdem Sie eine Ablaufverfolgung in Fiddler gesammelt haben, überprüfen Sie die .saz Datei in Fiddler. Es gibt zwei relevante Registerkarten in Fiddler. Die erste ist die Registerkarte Statistik. Wählen Sie mehrere Anforderungen (oder Frames) in einer Ablaufverfolgung aus, und die Registerkarte Statistik enthält einige Leistungsstatistiken auf einer einfachen Zusammenfassungsseite.

Die zweite Fiddler-Registerkarte zur Problembehandlung bei Leistungsproblemen ist die registerkarte Zeitachse. Wenn Sie die Zeitachse Registerkarte und mehrere Anforderungen (oder Frames) in einer Ablaufverfolgung auswählen, wird ein Balkendiagramm angezeigt, in dem dargestellt wird, wie lange es dauert, bis der Client Antworten für jede Anforderung empfängt.

F12-Entwicklertools sind in Microsoft Edge und Chrome integriert. In Fällen, in denen fiddler Classic nicht installiert werden kann, stehen diese Tools möglicherweise bereits dem Kunden zur Problembehandlung zur Verfügung. Die F12-Entwicklertools ähneln Fiddler, da sie eine clientseitige Ansicht der gestellten Anforderungen bereitstellen. Die HAR-Dateien der Entwicklertools zeigen eine Zeitachse am oberen Rand des Netzwerkberichts an, wodurch eine visuelle Darstellung der Zeit angezeigt wird, die der Browser auf einzelne Anforderungen wartet. Die HAR-Datei zeigt auch eine TIME- Spalte an, um langsame Anforderungen zu identifizieren.

FreB-Protokolle (Failed Request Trace)

FREB-Ablaufverfolgungen sind .xml Dateien und werden vom .xsl Stylesheet im FREB-Protokollverzeichnis formatiert. Verwenden Sie ein Tool wie FrebSbS, um diese Protokolle anzuzeigen. Weitere Informationen zum Lesen eines FREB-Protokolls finden Sie unter Lesen eines FREB-Protokolls, einer Fehleranforderungsablaufverfolgung: AUSFÜHRUNG der IIS-Anforderungsverarbeitungspipeline.

Vollständige Speicherabbilder

Die DebugDiag 2-Analyseanwendung kann Dumps für Hängen oder Leistungsprobleme analysieren.

Führen Sie die folgenden Schritte aus, um ein einzelnes Dump in einer Hang-Situation zu analysieren:

  1. Verwenden Sie die Schaltfläche "Datendateien hinzufügen", um ein Dump in "DebugDiag 2-Analyse" zu laden.
  2. Wählen Sie CrashHangAnalysisaus.
  3. Analyse staren auswählen.
  4. Wenn DebugDiag die Analyse abgeschlossen hat, wird ein Bericht in Microsoft Edge geöffnet.

Führen Sie die folgenden Schritte aus, um eine Reihe von Dumps in einem Leistungsproblem zu analysieren:

  1. Verwenden sie die Schaltfläche Hinzufügen von Datendateien, um mehrere Abbilder desselben Prozesses hinzuzufügen.
  2. Wählen Sie PerfAnalysis-aus.
  3. Analyse staren auswählen.
  4. Wenn DebugDiag die Analyse abgeschlossen hat, wird ein Bericht in Microsoft Edge geöffnet.

Es ist einfacher und verständlicher, jeweils nur eine Art von Analyseregel auszuführen.

Hinweis

Wenn eine detailliertere Analyse erforderlich ist, verwenden Sie WinDbg-, um Dumps zu überprüfen.

Haftungsausschluss für Drittanbieterinformationen

Die in diesem Artikel erläuterten Produkte von Drittanbietern werden von Unternehmen hergestellt, die unabhängig von Microsoft sind. Microsoft übernimmt keine Garantie, impliziert oder anderweitig, über die Leistung oder Zuverlässigkeit dieser Produkte.