asp.net performance monitoring production

¿Herramientas y métodos para monitorear en vivo las aplicaciones web ASP.NET?



performance monitoring (4)

Creo que muchos desarrolladores conocen esa sensación incómoda cuando los usuarios les dicen que "la aplicación es lenta (nuevamente)".

En una aplicación web compleja, puede haber muchas razones posibles para una degradación en el rendimiento (percibido): respuesta lenta de la base de datos, problemas de ancho de banda, mal almacenamiento en caché, etc. Ciertamente hay problemas que nunca ocurrirán en un entorno de desarrollo o estadificación.

Ahora mi pregunta:

¿Existe un conjunto de herramientas y / o métodos que proporcionarían un estado completo "vivo" en un sistema de producción IIS / ASP.NET / SQL Server de una manera visual (no solo contadores de rendimiento):

  • Solicitudes HTTP actuales (por ejemplo, los últimos n minutos)
  • Excepciones / tiempos de espera
  • Datos de ancho de banda
  • Número de conexiones de bases de datos abiertas / llamadas a bases de datos
  • ...

El objetivo principal es ver de un vistazo (o después de mirar más de cerca) qué problema está causando los problemas de rendimiento.


Creo que la categoría de software que está buscando es ".net profiler" o ".net tracer". Una de esas herramientas que podría considerar es dotTrace de JetBrains. Le da rastros de pila en tiempo de ejecución y una variedad de contadores que indican posibles cuellos de botella.


Las herramientas mencionadas anteriormente ciertamente funcionarán. En nuestra tienda necesitábamos información más precisa y construimos nuestra propia solución (larga historia: era más fácil codificar que discutir sobre herramientas y datos recuperables).

Utilicé LogParser para hojear los registros de IIS y crear informes de salida de esos registros (por ejemplo, desgloses de código de resultado, etc.).

Usé una combinación de contadores de rendimiento y valores de WMI para obtener el resto; puede leerlos usando C # bastante sencillo; esto le da control total que luego puede volcar a .csv, etc. para visualizarlo o procesarlo en excel o si está actualizando una página como centro de control.

Probablemente también vería IIS.net como un gran recurso para las herramientas de IIS, incluida la depuración, seguridad, etc.


CLR 4.5 tendrá algunas capacidades nuevas que le ayudarán a monitorear el desempeño de ASP.NET en tiempo real, sin reiniciar su aplicación. Básicamente puede volver a JET su código para incluir algunos ganchos de monitoreo en él, y luego inspeccionar el tiempo pasado en clases / métodos, etc.

Estoy seguro de que dotTrace y otras herramientas de generación de perfiles aprovecharán esto automáticamente, pero vale la pena echarle un vistazo: C9 - Dentro de Re-JIT con David Broman