Opsio - Cloud and AI Solutions
Monitoring5 min Lesezeit· 1.220 Wörter

IIS-Serverleistung überwachen: wichtige Zähler, Logs und Tools

Johan Carlsson
Johan Carlsson

Country Manager, Schweden

Veröffentlicht: ·Aktualisiert:
Aus dem Englischen übersetzt und vom Opsio-Redaktionsteam geprüft. Original ansehen →

Um die Leistung eines IIS-Servers zu überwachen, beobachten Sie vier Ebenen: den Server (CPU, Arbeitsspeicher, Datenträger), den IIS-Arbeitsprozess (w3wp.exe), die Request-Pipeline (Anfragen pro Sekunde, wartende und abgewiesene Anfragen, Antwortzeit) und Fehler (Rate der HTTP-5xx-Antworten). Erfassen Sie diese mit Zählern des Windows-Leistungsmonitors und IIS-Logs und senden Sie sie an ein Monitoring-Tool, das bei Trends alarmiert.

Das Wichtigste in Kürze

  • Requests Queued, Requests Rejected und Antwortzeit sagen mehr über die Auswirkung auf Nutzer aus als die CPU allein.
  • IIS-Logs enthalten standardmäßig das Feld time-taken, sodass Sie langsame URLs ohne zusätzliche Tools messen können.
  • Nutzen Sie Failed Request Tracing, um Details zu langsamen oder fehlschlagenden Anfragen zu erfassen, die Logs nur zusammenfassen.
  • appcmd list requests zeigt die aktuell laufenden Anfragen, was hilft, wenn eine Website hängt.
  • Für Alarmierung und Verlauf senden Sie Zähler an Amazon CloudWatch, Azure Monitor oder ein Tool wie Datadog.

Welche IIS-Leistungsmetriken sollten Sie überwachen?

Beginnen Sie mit einer kleinen Auswahl an Zählern, die Last, Auslastung und Fehler zeigen. Ergänzen Sie weitere nur, wenn Sie ein konkretes Problem untersuchen.

BereichLeistungsindikatorWas er Ihnen sagt
ServerProcessor: % Processor TimeGesamte CPU-Belastung des Hosts
ServerMemory: Available MBytesOb dem Server der Arbeitsspeicher knapp wird
ServerLogicalDisk: Avg. Disk sec/Read und sec/WriteDatenträgerlatenz, oft die Ursache für langsames Logging oder langsamen Dateizugriff
ArbeitsprozessProcess (w3wp): % Processor Time, Private BytesCPU und Arbeitsspeicher jedes Anwendungspools; stetig wachsende Private Bytes deuten auf ein Speicherleck
IISWeb Service: Current Connections, Total Method Requests/secVerkehrsaufkommen pro Website
ASP.NETASP.NET: Requests Queued, Request Wait TimeAnfragen, die auf einen Thread warten; steigende Werte heißen, dass der Server an seiner Parallelitätsgrenze ist
ASP.NETASP.NET: Requests RejectedAnfragen, die als HTTP 503 zurückgegeben wurden, weil der Server zu ausgelastet war
ASP.NETASP.NET Applications: Requests/Sec, Errors Total/SecDurchsatz und Fehlerrate pro Anwendung
ASP.NETASP.NET: Application Restarts, Worker Process RestartsUngeplante Recycles, die Sitzungen verwerfen und langsame erste Anfragen verursachen

Microsofts Referenz zu ASP.NET-Leistungsindikatoren erklärt, warum wartende Anfragen wichtig sind: Steigt der Zähler linear mit der Clientlast, hat der Server die Grenze der gleichzeitig verarbeitbaren Anfragen erreicht. Requests Rejected zählt Anfragen, die wegen unzureichender Ressourcen mit HTTP 503 beantwortet wurden. Diese ASP.NET-Zähler gelten für .NET-Framework-Anwendungen. ASP.NET-Core-Anwendungen unter IIS stellen ihre Metriken stattdessen über .NET-Event-Counter bereit, nutzen Sie dafür dotnet-counters oder Ihren APM-Agenten.

So überwachen Sie IIS mit den Windows-Bordmitteln

Mit dem, was in Windows Server enthalten ist, lässt sich viel erreichen. Diese Tools genügen für die Fehlersuche und für kleine Umgebungen.

Leistungsmonitor (PerfMon)

  1. Starten Sie perfmon und öffnen Sie den Leistungsmonitor.
  2. Fügen Sie die Zähler aus der Tabelle oben hinzu und wählen Sie für jeden relevanten Anwendungspool die w3wp-Instanz.
  3. Erstellen Sie einen Datensammlersatz, der die Zähler in kurzem Abtastintervall in eine Datei schreibt, damit Sie eine Baseline haben, bevor Probleme beginnen.
  4. Vergleichen Sie die Baseline mit einer langsamen Phase. Steigen die wartenden Anfragen bei gleichbleibender CPU, deutet das auf blockierende Aufrufe (Datenbank, externe APIs) hin und nicht auf fehlende Rechenleistung.

Für skriptgesteuerte Erfassung schreibt typeperf dieselben Zähler von der Befehlszeile aus in eine CSV-Datei.

IIS-Logs und Antwortzeit

IIS schreibt W3C-Logs pro Website. Laut der Konfigurationsreferenz zu IIS logFile gehören zu den Standardfeldern TimeTaken, HttpStatus, HttpSubStatus und Win32Status. Damit haben Sie für jede Anfrage Antwortzeit und Statuscode. Werten Sie die Logs mit Log Parser, PowerShell oder Ihrer Log-Plattform aus, um Folgendes zu finden:

  • Die langsamsten URLs nach der 95. Perzentile von time-taken.
  • Den Anteil der 5xx-Antworten pro Stunde, aufgeschlüsselt nach Substatus.
  • Verkehrsspitzen nach Client-IP oder User-Agent, die auf Bots oder Angriffe hindeuten können.

Failed Request Tracing

Failed Request Tracing (oft FREB genannt) zeichnet die gesamte Pipeline einer Anfrage auf, die einer Regel entspricht, etwa jede Anfrage, die langsamer ist als eine festgelegte Zeit, oder jede mit einem 500er-Status. Jede Ablaufverfolgung zeigt, welches Modul die Zeit verbraucht hat. Aktivieren Sie sie für eine bestimmte Website und ein URL-Muster, solange Sie untersuchen, und schalten Sie sie danach wieder ab, denn das Verfolgen jeder Anfrage verursacht Overhead.

Aktuell ausgeführte Anfragen

Hängt eine Website, prüfen Sie, was IIS gerade verarbeitet. Öffnen Sie im IIS-Manager die Arbeitsprozesse und sehen Sie sich die aktuellen Anfragen eines Pools an. Auf der Befehlszeile listet das Tool AppCmd laufende Anfragen mit URL und verstrichener Zeit auf und kann nach Website, Anwendungspool oder Arbeitsprozess filtern:

%systemroot%\system32\inetsrv\appcmd list requests /apppool.name:DefaultAppPool

Welche Tools überwachen IIS dauerhaft?

Die Bordmittel eignen sich für Untersuchungen, alarmieren Sie aber nicht um 03:00 Uhr. Senden Sie für die Produktion Zähler und Logs an eine Monitoring-Plattform.

  • Amazon CloudWatch Agent: Für IIS auf EC2 nimmt die Konfiguration des CloudWatch Agent pro Windows-Leistungsobjekt (Memory, Processor, LogicalDisk und weitere) einen Abschnitt mit den zu erfassenden Zählern auf. Er kann auch IIS-Logdateien an CloudWatch Logs senden.
  • Azure Monitor: Für Azure-VMs und Arc-fähige Server erstellen Sie eine Datensammlungsregel, die zusätzliche Leistungsindikatoren und IIS-Logs in einen Log-Analytics-Arbeitsbereich erfasst.
  • APM- und Observability-Tools: Datadog, Dynatrace, New Relic und SolarWinds erfassen IIS-Metriken und verfolgen Anfragen außerdem bis in den Anwendungscode und die Datenbank, was zeigt, warum eine Anfrage langsam war, und nicht nur, dass sie es war.

Welches Tool Sie auch wählen: Alarmieren Sie zuerst auf Symptome, die Nutzer spüren: steigende Antwortzeit, wartende Anfragen und 5xx-Fehlerrate. CPU- und Speicheralarme dienen als ergänzende Signale. Betreiben Sie auch die Datenbank unter Windows, ergänzen Sie dies um die Überwachung der SQL-Server-Leistung.

Praktische Alarmschwellen für den Start

Es gibt keine allgemeingültigen Grenzwerte; legen Sie Schwellen anhand Ihrer eigenen Baseline fest. Ein sinnvoller Ausgangspunkt:

  • Requests Queued über null, mehrere Minuten in Folge.
  • Jede Requests Rejected (HTTP 503).
  • Die 95. Perzentile von time-taken deutlich über der Baseline für Ihre wichtigsten URLs.
  • Der Anteil der 5xx-Antworten steigt über sein normales Niveau.
  • Private Bytes eines w3wp-Prozesses wachsen zwischen Recycles stetig.
  • Ungeplante Neustarts von Anwendung oder Arbeitsprozess.

Prüfen Sie die Schwellen nach jedem Vorfall und nach Lasttests. Ein Lasttest zeigt, ab wann die wartenden Anfragen steigen, und das ist Ihre tatsächliche Kapazitätsgrenze.

Wie Opsio Ihnen hilft

Opsio bietet 24/7-Monitoring für Windows- und IIS-Workloads auf AWS und Azure, einschließlich Alarm-Tuning und Incident Response. Siehe unsere Cloud-Monitoring- und Support-Services oder lesen Sie den weiterführenden Leitfaden zur Überwachung der Windows-Server-Leistung.

Häufig gestellte Fragen

Wie prüfe ich die IIS-Leistung schnell?

Öffnen Sie den Leistungsmonitor und fügen Sie Requests Queued, Requests/Sec sowie die CPU- und Speicherzähler des w3wp-Prozesses hinzu. Prüfen Sie dann in der Ansicht „Arbeitsprozesse“ des IIS-Managers, ob Anfragen lange laufen. Aktuelle IIS-Logs zeigen die Antwortzeiten pro URL im Feld time-taken.

Was bedeutet ein hoher Wert bei Requests Queued?

Anfragen warten auf einen freien Thread. Meist ist die Anwendung auf eine langsame Abhängigkeit wie eine Datenbank oder eine externe API blockiert, oder der Server hat seine Parallelitätsgrenze erreicht.

Wie finde ich langsame Seiten in IIS?

Werten Sie das Feld time-taken in den IIS-Logs aus, um URLs nach Antwortzeit zu ordnen, und aktivieren Sie dann Failed Request Tracing für die langsamsten URLs, um zu sehen, welches Modul die Zeit verbraucht.

Kann ich IIS mit Amazon CloudWatch überwachen?

Ja. Installieren Sie den CloudWatch Agent auf dem Windows-Server, tragen Sie die IIS- und ASP.NET-Leistungsindikatoren in seine Konfiguration ein und fügen Sie den IIS-Logordner als Logquelle hinzu.

Funktionieren die ASP.NET-Zähler auch für ASP.NET Core?

Nein. Die klassischen ASP.NET-Zähler gelten für .NET-Framework-Anwendungen. ASP.NET Core stellt Metriken über .NET-Event-Counter bereit, die Sie mit dotnet-counters oder einem APM-Agenten auslesen.

Weiterführende Artikel

Verfasst von

Johan Carlsson
Johan Carlsson

Country Manager, Schweden

Johan leitet die Schweden-Operationen von Opsio und treibt KI-Adoption, DevOps-Transformation, Sicherheitsstrategie und Cloud-Lösungen für nordische Unternehmen voran. Mit über 12 Jahren Erfahrung in der Cloud-Infrastruktur hat er mehr als 200 Projekte auf AWS, Azure und GCP geliefert — mit Schwerpunkt auf Well-Architected-Reviews, Landing-Zone-Design und Multi-Cloud-Strategie.

Redaktionelle Standards: Dieser Artikel wurde von der oben genannten Cloud-Fachperson verfasst. Wir überarbeiten ihn, wenn sich die behandelte Technologie oder Regulierung ändert; die Daten auf dieser Seite zeigen die letzte Aktualisierung. Opsio ist redaktionell unabhängig.