2008-11-03 8 views
19

Creo que muchos desarrolladores saben que la sensación incómoda cuando los usuarios les dicen que "La aplicación es lenta (de nuevo)".¿Herramientas y métodos para monitorear en vivo las aplicaciones web ASP.NET?

En una aplicación compleja red no puede haber muchas razones posibles para una degradación de (aparente) rendimiento: base de datos de respuesta lenta, problemas de ancho de banda, el mal almacenamiento en caché, etc. Sin duda hay cuestiones que no se producirán en un desarrollo o entorno de puesta en escena.

Ahora mi pregunta:

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

  • peticiones HTTP actual (digamos los últimos n minutos)
  • excepciones/tiempos de espera
  • datos de ancho de banda
  • Número de conexiones de base/base de datos abierta llama
  • ...

El objetivo principal es ver a simple vista (o después de mirar más cerca) cuál es el problema que está causando los problemas de rendimiento.

Respuesta

6

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

4

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.).

Utilicé una combinación de contadores de rendimiento y valores WMI para obtener el resto; puede leer estos usando un C# bastante sencillo - esto le da control total que luego puede volcar a .csv, etc. para visualizar/procesar en excel o si está actualizando una página como centro de control.

que probablemente también mirar a IIS.net como un gran recurso para herramientas IIS incluyendo la depuración, la seguridad, etc.

+1

acabo desprotegido iis.net y encontró un buen artículo publicado hace unos días: http://blogs.iis.net/timamm/archive/2012/02/11/asp-net-and-iis-performance-troubleshooting-tools-3-key-resources.aspx –

1

CLR 4.5 tendrá algunas nuevas capacidades que ayudarán a controlar el rendimiento ASP.NET en vivo - sin necesidad de 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 dotTrace y otras herramientas de perfilado aprovechará esto automáticamente, pero vale la pena echarle un vistazo: C9 - Inside Re-JIT with David Broman

Cuestiones relacionadas