Share via


Contadores de rendimiento para ASP.NET

ASP.NET admite dos grupos de contadores de rendimiento: de sistema y de aplicación. Los contadores de rendimiento del sistema se exponen en el monitor de rendimiento de Windows como el objeto de contador de rendimiento ASP.NET. Los contadores de rendimiento de la aplicación se exponen como el objeto de rendimiento de Aplicaciones ASP.NET.

Nota

El valor asociado a cada contador de rendimiento se actualiza cada 400 milisegundos. Cuando cree una aplicación de supervisión, asegúrese de que tiene en cuenta este lapso de tiempo de forma que el código no utilice un valor de contador obsoleto. Para obtener más información, vea Utilizar los componentes de supervisión del sistema.

Para obtener más información acerca de los contadores de rendimiento del sistema y de aplicación, vea Cómo: Crear categorías de contadores de rendimiento, Administración de categorías y contadores y Cómo: Crear contadores de rendimiento personalizados.

Al supervisar el rendimiento de sus aplicaciones Web ASP.NET, puede realizar el seguimiento de los contadores de rendimiento mostrados en la siguiente tabla.

Objeto de rendimiento Contador de rendimiento

ASP.NET

Reinicios de aplicación

ASP.NET

Solicitudes en cola

ASP.NET

Reinicios del proceso de trabajo

Aplicaciones ASP.NET

Total de errores

Aplicaciones ASP.NET

Solicitudes por segundo

Procesador

Porcentaje de utilización de la CPU

NoteNota
Un nivel bajo de utilización de la CPU o la incapacidad para utilizar la CPU al máximo, independientemente de la carga del cliente, puede significar la existencia de una contención de bloqueo o recurso en la aplicación Web.

Además, los siguientes contadores pueden ser muy útiles a la hora de determinar los problemas de rendimiento de las aplicaciones Web.

Objeto de rendimiento Contador de rendimiento

Aplicaciones ASP.NET

Recuento de instancias de canalización

Excepciones de CLR de .NET

Número de excepciones producidas

Sistema

Cambios de contexto por segundo

El contador Número de excepciones producidas muestra el número de las excepciones producidas en una aplicación, puesto que pueden repercutir en el rendimiento. Sin embargo, algunas rutas de acceso al código dependen de las excepciones para funcionar correctamente. Por ejemplo, el método Redirect en el objeto Response produce la excepción ThreadAbortException, que no se puede detectar. Por tanto, puede ser útil realizar el seguimiento de este valor con el contador Total de errores para ver si la excepción generó un error en la aplicación.

El contador Cambios de contexto por segundo mide la tasa de cambio de contexto de los subprocesos en todas las CPU del equipo servidor Web. En este contador un valor alto indica, por lo general, una alta contención de bloqueos o muchos cambios en el subproceso entre los modos de usuario y kernel. Si sucede esto, debe realizar una investigación en mayor profundidad con perfiles de muestreo y otras herramientas.

Contadores de rendimiento del sistema ASP.NET

ASP.NET admite los contadores de rendimiento de sistema ASP.NET que se muestran en la siguiente tabla. Estos contadores agregan información de todas las aplicaciones ASP.NET en un equipo servidor Web.

Nota

Existe una diferencia significativa entre los contadores Sesiones del servidor de estado del objeto de rendimiento ASP.NET, que sólo se aplican al equipo en el que se ejecuta el servidor de estado, y los contadores Sesiones del objeto de rendimiento Aplicaciones ASP.NET, que sólo se aplican a sesiones de usuario que tienen lugar en proceso.

  • Reinicios de aplicación
    Número de veces que se ha reiniciado la aplicación durante la duración del servidor Web. Los reinicios de aplicación se incrementan cada vez que se provoca un evento Application_OnEnd. El reinicio de una aplicación se puede producir debido a cambios en el archivo Web.config, cambios en los ensamblados almacenados en el directorio Bin de la aplicación o cuando una aplicación debe recompilarse debido a numerosos cambios en páginas Web ASP.NET. Los aumentos inesperados de los valores del contador pueden significar la existencia de problemas que provoquen que la aplicación Web se recicle. En estos casos deberá investigar las causas con la mayor brevedad posible.

    Nota

    Este valor se restablece a cero cada vez que se reinicia el host de Servicios de Internet Information Server (IIS).

  • Aplicaciones en ejecución
    Número de aplicaciones que se ejecutan de forma simultánea en el equipo servidor.
  • Solicitudes desconectadas
    Número de solicitudes que se han desconectado debido a errores en la comunicación.
  • Solicitudes en cola
    Número de solicitudes en espera de ser atendidas que permanecen en la cola. Cuando este número inicia un aumento lineal con la carga del cliente ampliada, significa que en el equipo servidor Web se ha alcanzado el límite de solicitudes que se pueden procesar simultáneamente. De forma predeterminada, el valor máximo de este contador es 5.000. Puede cambiar este valor en el archivo Machine.config.
  • Solicitudes rechazadas
    Número total de solicitudes no ejecutadas debido a que no hay suficientes recursos en el servidor para procesarlas. Este contador representa el número de solicitudes que encuentran el código de estado HTTP 503, que indica que el servidor está ocupado.
  • Tiempo de espera de la solicitud
    Número de milisegundos que la solicitud más reciente esperó su procesamiento en la cola.
  • Conexiones totales al servidor de estado de sesión
    Número total de conexiones con el equipo en el que se almacenan los datos de estado de sesión fuera de proceso. Para obtener más información, vea Modos de estado de sesión.
  • Conexiones totales al servidor SQL de sesión
    Número total de conexiones a la base de datos de Microsoft SQL Server en la que se almacena el estado de sesión. Para obtener más información, vea Modos de estado de sesión.
  • Sesiones abandonadas del servidor de estado
    Número de sesiones de usuario abandonadas explícitamente. Se trata de las sesiones terminadas por acciones específicas del usuario, como cerrar el explorador o desplazarse a otro sitio. Este contador sólo está disponible en el equipo en el que se ejecuta el servicio servidor de estado (aspnet_state).
  • Sesiones activas del servidor de estado
    Número actual de sesiones de usuario activas. Este contador sólo está disponible en el equipo en el que se ejecuta el servicio servidor de estado (aspnet_state).
  • Sesiones del servidor de estado que agotaron el tiempo de espera
    Número de sesiones de usuario que se han vuelto inactivas porque el usuario no ha realizado ninguna acción. Este contador sólo está disponible en el equipo en el que se ejecuta el servicio servidor de estado (aspnet_state).
  • Sesiones totales del servidor de estado
    Número de sesiones creadas durante la duración del proceso. Este contador refleja el valor total de Sesiones activas del servidor de estado, Sesiones abandonadas del servidor de estado y Sesiones del servidor de estado que agotaron el tiempo de espera. Este contador sólo está disponible en el equipo en el que se ejecuta el servicio servidor de estado (aspnet_state).
  • Reinicios del proceso de trabajo
    Número de veces que se ha reiniciado un proceso de trabajo en el equipo servidor. Un proceso de trabajo se puede reiniciar si se produce un error imprevisto o cuando se recicla de forma intencionada. Si este contador aumenta inesperadamente, debería realizar una investigación lo antes posible.
  • Procesos de trabajo en ejecución
    Número de procesos de trabajo que se ejecutan en el equipo servidor.

Contadores de rendimiento de aplicaciones ASP.NET

ASP.NET admite los contadores de rendimiento de la aplicación que se muestran en la siguiente tabla. Estos contadores le permiten supervisar el rendimiento de una instancia única de una aplicación ASP.NET. Una instancia única denominada __Total__ está disponible para estos contadores. Esta instancia agrega contadores para todas las aplicaciones en un servidor Web (similar a los contadores globales descritos anteriormente en este tema). La instancia __Total__ siempre está disponible. Los contadores indican cero cuando no se está ejecutando ninguna aplicación en el servidor.

  • Solicitudes anónimas
    Número de solicitudes que utilizan la autenticación anónima.
  • Solicitudes anónimas por segundo
    Número de solicitudes que utilizan la autenticación anónima por segundo.
  • Entradas totales en caché
    Número total de entradas en la caché. Este contador incluye el uso de la caché por parte del marco de trabajo de páginas ASP.NET y el uso de la caché de la aplicación a través de las API de caché.
  • Total de visitas a la caché
    Número total de visitas a la caché. Este contador incluye el uso de la caché por parte del marco de trabajo de páginas ASP.NET y el uso de la caché de la aplicación a través de las API de caché.
  • Total de errores de caché
    Número de solicitudes de caché con error por aplicación. Este contador incluye el uso de la caché por parte del marco de trabajo de páginas ASP.NET y el uso de la caché de la aplicación a través de las API de caché.
  • Proporción total de aciertos de caché
    Proporción entre los aciertos y los errores de caché. Este contador incluye el uso de la caché por parte del marco de trabajo de páginas ASP.NET y el uso de la caché de la aplicación a través de las API de caché.
  • Tasa de renovación total de caché
    El número de adiciones y eliminaciones de la caché por segundo, que es útil para ayudar a determinar la efectividad con que se utiliza la caché. Si la tasa de renovación es alta, la caché no se utiliza eficazmente.
  • Entradas API de caché
    Número total de entradas de la caché de la aplicación.
  • Visitas de la API de caché
    Número total de visitas desde la caché cuando el acceso a la misma se efectúa a través de las API de caché externas. Este contador no realiza ningún seguimiento del uso de la caché por el marco de trabajo de páginas ASP.NET.
  • Errores de la API de caché
    Número total de solicitudes con error desde la caché cuando el acceso a la misma se efectúa a través de las API de caché externas. Este contador no realiza ningún seguimiento del uso de la caché por el marco de trabajo de páginas ASP.NET.
  • Proporción de aciertos de la API de caché
    Proporción entre aciertos y errores de caché en el acceso a través de las API de caché externas. Este contador no realiza ningún seguimiento del uso de la caché por el marco de trabajo de páginas ASP.NET.
  • Tasa de renovación de la API de caché
    Número de elementos que se agregan a o eliminan de la caché de API por segundo cuando el acceso se efectúa a través de API externas (excluido el uso por parte del marco de trabajo de páginas ASP.NET). Este contador resulta útil para determinar la efectividad con que se utiliza la caché. Si la tasa de renovación es alta, entonces la caché no se utiliza eficazmente.
  • Total de compilaciones
    Número total de compilaciones que han tenido lugar durante la duración del proceso servidor Web actual. Una compilación se produce cuando se compila dinámicamente en el servidor un archivo con la extensión de nombre de archivo .aspx, .asmx, .ascx o .ashx, o un archivo de código fuente subyacente.

    Inicialmente, este número subirá hasta llegar al valor máximo a medida que se efectúen solicitudes a todos los componentes de una aplicación. Sin embargo, cuando se produce una compilación, el resultado compilado que se obtiene se guarda en un disco, donde puede volver a utilizarse hasta que el archivo de código fuente cambie. Esto significa que, incluso en el caso de que se reinicie el proceso, el contador puede permanecer a cero (inactivo) hasta que la aplicación se modifique o se implemente de nuevo.

  • Solicitudes de depuración
    Número de solicitudes recibidas mientras la depuración está habilitada.
  • Errores durante el preprocesamiento
    Número de errores que aparecieron durante el análisis, excepto los errores de compilación y los que se producen en tiempo de ejecución.
  • Errores producidos durante la compilación
    Número de errores que aparecen durante la compilación dinámica, excepto los errores de análisis y los que se producen en tiempo de ejecución.
  • Errores producidos durante la ejecución
    Número total de errores que ocurren durante la ejecución de una solicitud HTTP, excepto los errores de análisis y los que se producen en tiempo de ejecución.
  • Errores no controlados durante la ejecución
    Número total de errores no controlados que ocurrieron durante la ejecución de solicitudes HTTP. Un error no controlado es cualquier excepción en tiempo de ejecución que no se intercepta en código de usuario y escribe la lógica interna de control de errores de ASP.NET. Existen excepciones en los siguientes casos:

    • Hay errores personalizados habilitados, se ha definido una página de error, o ambas cosas.

    • Se ha definido el evento Page_Error en el código de usuario y el error se borra (con el método ClearError) o se redirige.

  • Errores no controlados durante la ejecución por segundo
    Número de excepciones no controladas por segundo que ocurrieron durante la ejecución de solicitudes HTTP.
  • Total de errores
    Número total de errores que ocurren durante la ejecución de solicitudes HTTP, incluidos los errores de análisis, compilación o los que se producen en tiempo de ejecución. Este contador es la suma de Errores durante la compilación, Preprocesamiento y Ejecución de solicitudes. Un servidor Web que funcione correctamente no debe generar errores. Si se producen errores en la aplicación Web ASP.NET, puede haber un desajuste en los resultados de rendimiento debido a las diversas rutas de acceso a código para la recuperación de errores. Investigue y solucione cualquier error de la aplicación antes de probar el rendimiento.
  • Total de errores por segundo
    Número total de errores por segundo que ocurren durante la ejecución de solicitudes HTTP, incluidos los errores de análisis, compilación o los que se producen en tiempo de ejecución.
  • Entradas de la caché de resultados
    Número total de entradas en la caché de resultados.
  • Visitas de la caché de resultados
    Número total de solicitudes atendidas desde la caché de resultados.
  • Errores de caché de resultados
    Número total de solicitudes que no se atendieron desde la caché de resultados por cada aplicación.
  • Proporción de aciertos de la caché de resultados
    Porcentaje del total de solicitudes atendido desde la caché de resultados.
  • Índice de movimiento de caché de resultados
    Número de elementos que se agregan o eliminan de la caché de resultados por segundo. Si la tasa de renovación es alta, la caché no se utiliza eficazmente.
  • Recuento de instancias de canalización
    Número de instancias activas en la canalización de solicitudes para la aplicación ASP.NET especificada. Como sólo se puede ejecutar un subproceso de ejecución en una instancia de canalización, este número proporciona el número máximo de solicitudes simultáneas que se procesan en una determinada aplicación. En la mayoría de las circunstancias es más conveniente que este número sea bajo en condiciones de baja carga, lo que significa que la utilización de la CPU es buena.
  • Total de bytes de las solicitudes
    Tamaño total en bytes de todas las solicitudes.
  • Total de bytes de salida de la solicitud
    Tamaño total en bytes de las respuestas enviadas a un cliente. No se incluyen los encabezados de respuesta de HTTP.
  • Solicitudes en ejecución
    Número de solicitudes actualmente en ejecución.
  • Errores de solicitudes
    Número total de solicitudes con errores. Cualquier código de estado mayor o igual que 400 incrementará este contador.

    Las solicitudes que generan un código de estado 401 incrementarán este contador y el contador Solicitudes no autorizadas. Las solicitudes que generan un código de estado 404 o 414 incrementarán este contador y el contador Solicitudes no encontradas. Las solicitudes que generan un código de estado 500 incrementarán este contador y el contador Tiempo de espera agotado para las solicitudes.

  • Solicitudes no encontradas
    Número de solicitudes con error debido a que los recursos no se encontraron (código de estado 404 o 414).
  • Solicitudes no autorizadas
    Número de solicitudes con error por denegación de autorización (código de estado 401).
  • Solicitudes correctas
    Número de solicitudes ejecutadas correctamente (código de estado 200).
  • Tiempo de espera agotado para las solicitudes
    Número de solicitudes que han agotado el tiempo de espera (código de estado 500).
  • Total de solicitudes
    Número total de solicitudes desde que se inició el servicio.
  • Solicitudes por segundo
    Número de solicitudes ejecutadas por segundo. Representa el rendimiento actual de la aplicación. Bajo condiciones de carga constante, este número debe permanecer dentro de un intervalo específico, restringiendo el trabajo de otro servidor (como el recolector de elementos no utilizados, el subproceso de limpieza de la caché, herramientas de servidores externos, etc.).
  • Sesiones activas
    Número de sesiones activas actualmente. Este contador sólo funciona con el estado de sesión en memoria.
  • Sesiones detenidas
    Número de sesiones abandonadas explícitamente. Este contador sólo funciona con el estado de sesión en memoria.
  • Sesiones cuyo tiempo de espera ha terminado
    Número de sesiones que han agotado el tiempo de espera. Este contador sólo funciona con el estado de sesión en memoria.
  • Total de sesiones
    Número total de sesiones. Este contador sólo funciona con el estado de sesión en memoria.
  • Transacciones anuladas
    Número de transacciones canceladas para todas las aplicaciones ASP.NET activas.
  • Transacciones confirmadas
    Número de transacciones confirmadas para todas las aplicaciones ASP.NET activas.
  • Transacciones pendientes
    Número de transacciones en curso para todas las aplicaciones ASP.NET activas.
  • Total de transacciones
    Número total de transacciones para todas las aplicaciones ASP.NET activas.
  • Transacciones por segundo
    Número de transacciones iniciadas por segundo para todas las aplicaciones ASP.NET activas.

Vea también

Conceptos

Desarrollar aplicaciones ASP.NET de alto rendimiento
Optimizar el rendimiento en ASP.NET
Supervisar el rendimiento de una aplicación ASP.NET

Otros recursos

Almacenamiento en caché en ASP.NET