Contadores de rendimiento de redes
La categoría de redes de CLR de .NET de la consola Rendimiento incluye contadores que proporcionan información sobre los datos que una aplicación envía y recibe a través de la red. En la siguiente tabla se describen estos contadores de rendimiento.
Contador de rendimiento |
Descripción |
---|---|
Bytes recibidos |
El número total acumulativo de bytes recibidos por todos los objetos Socket dentro de AppDomain desde que el proceso se inició. Este número incluye datos y cualquier información de protocolo no definida por TCP/IP. |
Bytes enviados |
El número acumulativo de bytes enviados por todos los objetos Socket dentro de AppDomain desde que el proceso se inició. Este número incluye datos y cualquier información de protocolo no definida por TCP/IP. |
Conexiones establecidas |
El número total acumulativo de objetos Socket para los sockets de secuencia que se conectaron alguna vez dentro de AppDomain desde que el proceso se inició. |
Datagramas recibidos |
El número total acumulativo de paquetes de datagramas recibidos por todos los objetos Socket dentro de AppDomain desde que el proceso se inició. |
Datagramas enviados |
El número total acumulativo de paquetes de datagramas enviados por todos los objetos Socket dentro de AppDomain desde que el proceso se inició. |
HttpWebRequest Average Lifetime |
El tiempo medio para completar todos los objetos HttpWebRequest que finalizaron en el último intervalo dentro de AppDomain desde que el proceso se inició. |
HttpWebRequest Average Queue Time |
El tiempo medio en cola de todos los objetos HttpWebRequest que dejaron la cola en el último intervalo dentro de AppDomain desde que el proceso se inició. |
HttpWebRequests Created/sec |
El número de objetos HttpWebRequest creados por segundo dentro de AppDomain. |
HttpWebRequests Queued/sec |
El número de objetos HttpWebRequest que se agregaron a la cola por segundo dentro de AppDomain. |
HttpWebRequests Aborted/sec |
El número de objetos HttpWebRequest en los que la aplicación llamó al método Abort por segundo dentro de AppDomain. |
HttpWebRequests Failed/sec |
El número de objetos HttpWebRequest que recibieron un código de estado de error del servidor por segundo dentro de AppDomain. |
Comentarios
Hay varias clases de contadores de rendimiento de red admitidos:
Contadores de eventos que miden el número de veces que se produce algún evento.
Contadores de datos que miden la cantidad de datos enviados o recibidos.
Contadores de duración que miden cuánto tiempo tardan los diferentes procesos. El tiempo se mide en los objetos cada intervalo (normalmente en segundos) después de salir de estados diferentes.
Contadores por intervalos que miden el número de objetos que están realizando una determinada transición por intervalo (normalmente por segundo).
Los contadores de rendimiento de red para los eventos incluyen lo siguiente:
Conexiones establecidas
Datagramas recibidos
Datagramas enviados
Estos contadores de rendimiento proporcionan recuentos desde que el proceso se inició. Los recuentos de las conexiones Socket establecidas incluyen llamadas al método Socket explícitas por parte de una aplicación para una conexión de socket de secuencia establecida, así como llamadas internas realizadas por otras clases (HttpWebRequest, FtpWebRequest, WebClient y TcpClient, por ejemplo) a la clase Socket
Los recuentos de Datagramas recibidos y Datagramas enviados incluyen paquetes de datagrama enviados o recibidos utilizando llamadas al método Socket explícitas por parte de una aplicación, así como llamadas internas realizadas por otras clases (UdpClient, por ejemplo) a la clase Socket. . Los recuentos Datagramas recibidos y Datagramas enviados también se pueden utilizar para proporcionar una medida aproximada de cuántos bytes se enviaron o recibieron utilizando datagramas, suponiendo un tamaño medio para un datagrama.
Los contadores de rendimiento de red para los datos incluyen lo siguiente:
Bytes recibidos
Bytes enviados
Los contadores anteriores proporcionan recuentos de bytes desde que el proceso se inició.
Hay dos contadores de duración que miden cuánto tiempo tardan los objetos HttpWebRequest en recorrer su ciclo de vida completo o solo parte de él:
HttpWebRequest Average Lifetime
HttpWebRequest Average Queue Time
Para el contador HttpWebRequest Average Lifetime, la duración de la mayoría de los objetos HttpWebRequest se inicia siempre desde el momento en que se crea el objeto hasta el momento en que la aplicación cierra la secuencia de respuesta. Hay dos casos raros:
Si la aplicación nunca llama a los métodos BeginGetResponse o GetResponse, se omite la duración del objeto HttpWebRequest.
Si el objeto HttpWebRequest produce una WebException al llamar a los métodos EndGetResponse o GetResponse, la duración finaliza cuando se produce la excepción. Técnicamente, la secuencia de respuesta subyacente también se cierra en ese punto (la secuencia de respuesta devuelta al usuario es realmente una secuencia de la memoria que contiene una copia de la secuencia de respuesta).
Hay cuatro contadores que realizan el seguimiento de ciertos problemas del objeto HttpWebRequest por intervalo. Estos contadores de rendimiento pueden ayudar a que los desarrolladores de aplicaciones, administradores y el personal de soporte entiendan mejor lo que están haciendo los objetos HttpWebRequest. Los contadores incluyen lo siguiente:
HttpWebRequests Created/sec
HttpWebRequests Queued/sec
HttpWebRequests Aborted/sec
HttpWebRequests Failed/sec
Para el contador HttpWebRequests Aborted/sec, también se cuentan las llamadas internas a Abort. Estas llamadas internas las producen normalmente tiempos de espera que una aplicación puede desear medir.
El contador HttpWebRequests Failed/sec contiene el número de objetos HttpWebRequest que recibieron un código de estado de error del servidor por segundo. Esto significa que el código de estado recibido del servidor Http al final de la solicitud no estaba en el intervalo de 200 a 299. Se producirá o no un error en los códigos de estado que se administran y producen una nueva solicitud (muchos de los códigos de estado 401 No autorizado, por ejemplo) según el resultado del reintento. Si la aplicación viera un error basado en el reintento, se incrementa este contador.
A los contadores de rendimiento de red se puede obtener acceso y administrar utilizando las clases relacionadas y PerformanceCounter en el espacio de nombres System.Diagnostics. Los contadores de rendimiento de red también se pueden ver con la consola del Monitor de rendimiento de Windows.
Los contadores de rendimiento de red necesitan estar habilitados en el archivo de configuración que se va a utilizar. Todos los contadores de rendimiento de red se habilitan o deshabilitan con un único valor del archivo de configuración. Los contadores de rendimiento de red individuales no se pueden habilitar o deshabilitar. Para obtener más información, vea <performanceCounter> (Elemento, Configuración de red).
Si los contadores de conexión de red están habilitados, esto creará y actualizará el contador de rendimiento global y el contador por Appdomain. Si está deshabilitado, la aplicación no proporcionará ningún dato de contador de rendimiento de la conexión de red.
Los contadores de rendimiento están agrupados en Categorías. Una aplicación puede hacer una lista de todas las categorías con el siguiente código de ejemplo:
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);
}
Los contadores de rendimiento de red se enumeran en dos categorías:
".NET CLR Networking" - los contadores de rendimiento originales introducidos en .NET Framework versión 2 y compatibles con .NET Framework versión 2 y posteriores.
".NET CLR Networking 4.0.0.0" - Todos los contadores de socket anteriores más los nuevos contadores de rendimiento admitidos en .NET Framework versión 4 y posteriores. Estos nuevos contadores proporcionan información de rendimiento sobre los objetos HttpWebRequest.
Para obtener más información sobre cómo obtener acceso y administrar los contadores de rendimiento en una aplicación, vea Contadores de rendimiento de .NET Framework.
Vea también
Referencia
<performanceCounter> (Elemento, Configuración de red)
Generar perfiles en tiempo de ejecución