Netzwerkleistungsindikatoren

Die Kategorie .NET CLR Networking der Verwaltungskonsole Leistung enthält Zähler, die Informationen zu Daten liefern, die eine Anwendung über das Netzwerk sendet und empfängt. In der folgenden Tabelle werden diese Leistungsindikatoren beschrieben.

Leistungsindikator

Beschreibungen

Bytes empfangen

Die kumulierte Gesamtanzahl von Bytes, die seit Beginn des Prozesses von allen Socket-Objekten innerhalb der AppDomain empfangen wurde. Diese Zahl schließt Daten und Protokollinformationen mit ein, die nicht durch TCP/IP definiert werden.

Bytes gesendet

Die kumulierte Anzahl von Bytes, die seit Beginn des Prozesses von allen Socket-Objekten innerhalb der AppDomain gesendet wurde. Diese Zahl schließt Daten und Protokollinformationen mit ein, die nicht durch TCP/IP definiert werden.

Hergestellte Verbindungen

Die kumulierte Gesamtzahl von Socket-Objekten für Streamsockets, die seit Beginn des Prozesses innerhalb der AppDomain verbunden wurde.

Empfangene Datagramme

Die kumulierte Gesamtanzahl von Datagrammpaketen, die seit Beginn des Prozesses von allen Socket-Objekten innerhalb der AppDomain empfangen wurde.

Gesendete Datagramme

Die kumulierte Gesamtanzahl von Datagrammpaketen, die seit Beginn des Prozesses von allen Socket-Objekten innerhalb der AppDomain gesendet wurde.

HttpWebRequest Average Lifetime

Die durchschnittliche Dauer bis zum Abschluss für alle HttpWebRequest-Objekte, die im letzten Intervall innerhalb der AppDomain geendet haben, seit der Prozess gestartet wurde.

HttpWebRequest Average Queue Time

Die durchschnittliche Zeitspanne in der Warteschlange für alle HttpWebRequest-Objekte, die im letzten Intervall innerhalb der AppDomain die Warteschlange verlassen haben, seit der Prozess gestartet wurde.

HttpWebRequests Created/sec

Die Anzahl von HttpWebRequest-Objekten, die pro Sekunde innerhalb der AppDomain erstellt werden.

HttpWebRequests Queued/sec

Die Anzahl von HttpWebRequest-Objekten, die innerhalb der AppDomain pro Sekunde der Warteschlange hinzugefügt wurden.

HttpWebRequests Aborted/sec

Die Anzahl der HttpWebRequest-Objekte pro Sekunde, für die die Anwendung die Abort-Methode innerhalb der AppDomain aufgerufen hat.

HttpWebRequests Failed/sec

Die Anzahl von HttpWebRequest-Objekten, die innerhalb der AppDomain pro Sekunde einen Fehlerstatuscode vom Server empfangen haben.

Hinweise

Es gibt mehrere Klassen von Netzwerkleistungsindikatoren, die unterstützt werden:

  • Ereigniszähler, die die Häufigkeit bestimmter Ereignisse erfassen.

  • Datenzähler, die die Menge von Daten, die gesendet oder empfangen wurden, messen.

  • Dauerindikatoren, die messen, wie lange verschiedene Prozesse dauern. Den Zeiten werden in jedem Intervall (normalerweise in Sekunden) auf den Objekten gemessen, nachdem sie verschiedene Zustände verlassen haben.

  • Pro-Intervall-Indikatoren messen die Anzahl von Objekten, die pro Intervall (normalerweise pro Sekunde) einen bestimmten Übergang machen.

Die Netzwerkleistungsindikatoren für Ereignisse umfassen folgende:

  • Hergestellte Verbindungen

  • Empfangene Datagramme

  • Gesendete Datagramme

Diese Leistungsindikatoren stellen Zählwerte bereit, die seit Prozessbeginn erfasst wurden. Die Zählwerte für hergestellte Socket-Verbindungen umfassen explizite Socket-Methodenaufrufe von einer Anwendung für eine Streamsocketverbindung, die hergestellt wurde, ebenso wie interne Aufrufe der Socket-Klasse, die durch andere Klassen getätigt wurden (zum Beispiel HttpWebRequest, FtpWebRequest, WebClient und TcpClient).

Die Werte für Empfangene Datagramme und Gesendete Datagramme schließen Datagrammpakete ein, die mit expliziten Socket-Methodenaufrufen durch eine Anwendung empfangen bzw. gesendet wurden, ebenso wie interne Aufrufe von Socket, die durch andere Klassen (zum Beispiel UdpClient) getätigt wurden. ein. Die Werte Empfangene Datagramme und Gesendete Datagramme können auch verwendet werden, um ungefähr anzugeben, wie viele Bytes mit Datagrammen gesendet oder empfangen wurden, indem für ein Datagramm eine durchschnittliche Größe angenommen wird.

Die Netzwerkleistungsindikatoren für Daten umfassen folgende:

  • Bytes empfangen

  • Bytes gesendet

Die oben erwähnten Indikatoren stellen Zählwerte der Bytes bereit, seit der Prozess begonnen wurde.

Es gibt zwei Dauerindikatoren, die messen, wie lang es gedauert hat, bis die HttpWebRequest-Objekte ihren ganzen Lebenszyklus oder einen Teil davon durchlaufen haben:

  • HttpWebRequest Average Lifetime

  • HttpWebRequest Average Queue Time

Für den HttpWebRequest Average Lifetime-Indikator beginnt die Lebensdauer der meisten HttpWebRequest-Objekte immer mit dem Zeitpunkt, an dem das Objekt erstellt wird, bis zu dem Zeitpunkt, an dem der Antwortstream von der Anwendung geschlossen wird. Es gibt zwei ungewöhnliche Fälle:

  • Wenn die Anwendung nie die GetResponse-Methode oder die BeginGetResponse-Methode aufruft, dann wird die Lebensdauer des HttpWebRequest-Objekts ignoriert.

  • Wenn das HttpWebRequest-Objekt eine WebException auslöst, während es die GetResponse-Methode oder die EndGetResponse-Methode aufruft, endet die Lebensdauer mit dem Auslösen der Ausnahme. Technisch gesehen wird der zugrunde liegende Antwortstream auch an diesem Punkt geschlossen (der dem Benutzer zurückgegebene Antwortstream ist eigentlich ein Arbeitsspeicherstream, der eine Kopie des Antwortstreams enthält).

Es gibt vier Indikatoren, die bestimmte Probleme mit dem HttpWebRequest-Objekt pro Intervall erfassen. Diese Leistungsindikatoren helfen Anwendungsentwicklern, Administratoren und Supportmitarbeitern dabei, die Funktionsweise von HttpWebRequest-Objekten besser zu verstehen. Die Indikatoren umfassen folgende:

  • HttpWebRequests Created/sec

  • HttpWebRequests Queued/sec

  • HttpWebRequests Aborted/sec

  • HttpWebRequests Failed/sec

Für den HttpWebRequests Aborted/sec-Indikator werden auch interne Aufrufe von Abort gezählt. Diese internen Aufrufe werden normalerweise von Timeouts verursacht, die eine Anwendung messen möchte.

Der HttpWebRequests Failed/sec-Indikator enthält die Anzahl von HttpWebRequest-Objekten, die pro Sekunde einen Fehlerstatuscode vom Server empfangen haben. Dies bedeutet, dass der vom HTTP-Server am Ende der Anforderung empfangene Statuscode nicht im Bereich zwischen 200 bis 299 lag. Statuscodes, die behandelt werden und zu einer neuen Anforderung führen – viele der 401-Statuscodes (nicht autorisiert) zum Beispiel – schlagen je nach dem Ergebnis der Wiederholung fehl oder auch nicht. Wenn die Anwendung auf Grundlage der Wiederholung einen Fehler sehen würde, wird dieser Indikator inkrementiert.

Auf Netzwerkleistungsindikatoren kann mit den PerformanceCounter und verwandten Klassen im System.Diagnostics-Namespace zugegriffen werden; damit werden die Indikatoren außerdem verwaltet. Netzwerkleistungsindikatoren können auch mit der Windows-Systemmonitor-Konsole angezeigt werden.

Netzwerkleistungsindikatoren müssen zur Verwendung in der Konfigurationsdatei aktiviert werden. Alle Netzwerkleistungsindikatoren werden mit einer einzelnen Einstellung in der Konfigurationsdatei aktiviert oder deaktiviert. Einzelne Netzwerkleistungsindikatoren können nicht aktiviert oder deaktiviert werden. Weitere Informationen finden Sie unter <performanceCounters>-Element (Netzwerkeinstellungen).

Wenn Netzwerkindikatoren aktiviert sind, erstellt und aktualisiert dies sowohl pro-AppDomain- als auch globale Leistungsindikatoren. Wenn deaktiviert, stellt die Anwendung keine Netzwerkleistungsindikatordaten bereit.

Leistungsindikatoren werden in Kategorien gruppiert. Eine Anwendung kann alle Kategorien mit dem folgenden Beispielcode aufführen:

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

Die Netzwerkleistungsindikatoren sind in zwei Kategorien aufgeführt:

  • ".NET CLR Networking": Die ursprünglichen Leistungsindikatoren, die in .NET Framework Version 2 eingeführt wurden und von .NET Framework Version 2 und höher unterstützt werden.

  • ".NET CLR Networking 4.0.0.0": Alle der oben erwähnten Socketindikatoren plus die neuen Leistungsindikatoren, die von .NET Framework Version 4 und höher unterstützt werden. Diese neuen Indikatoren geben Leistungsinformationen zu HttpWebRequest-Objekten.

Weitere Informationen über das Zugreifen auf und Verwalten von Leistungsindikatoren in einer Anwendung finden Sie unter Leistungsindikatoren in .NET Framework.

Siehe auch

Referenz

<performanceCounters>-Element (Netzwerkeinstellungen)

Laufzeit-Profilerstellung

System.Diagnostics

Weitere Ressourcen

Leistungsindikatoren in .NET Framework