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)