Usar Debug Diagnostic Tool 1.2 para saber si tu aplicación ASP.NET está usando todas las conexiones

Uno de los problemas que podemos tener en nuestra aplicación ASP.NET es que se llenen todas las conexiones disponibles cuando accedemos a servicios alojados en otros servidores.

Los síntomas que se pueden apreciar cuando se llenan las conexiones y no son liberadas pueden ser que la aplicación se queda congelada, o que tiene un mal rendimiento, aparecen timeouts... (en este artículo se detallan los síntomas, causas y resolución https://support.microsoft.com/kb/821268)

Podemos utilizar Debug Diagnostic Tool v1.2 para ver, de una forma sencilla, las conexiones utilizadas y los hilos que están esperando conexiones libres.

Los pasos a seguir son muy sencillos, basta con seguir estas instrucciones

1. Instalar Debug Diagnostic Tool v1.2 en el servidor IIS

2. Reproducir la situación en la que se produce la situación de denegación de servicio o pérdida del rendimiento

3. Abrir Debug Diagnostic Tool v1.2 y en el menú Tools elegir la opción Create IIS/COM+ Hang Dump

image

Aparecerán varios mensajes de alerta indicando cuántos volcados se han generado (la ruta por defecto es C:\Program Files\DebugDiag\Logs\Misc)

4. Ir a la pestaña Advanced Analysis, seleccionar Crash/Hang analyzers, pulsar sobre el botón Add Data Files, seleccionar el volcado que queremos analizar y pulsar sobre Start Analysis

image

 

Cuando haya terminado, abrirá un informe en formato mhtml (por defecto lo abrirá con el navegador predeterminado) en el que indicará los aspectos más reseñables que haya encontrado, entre ellos el número de conexiones utilizadas:

 

image

image

 

Recordad que por defecto se permiten 12 conexiones por aplicación/procesador/dirección IP. En este ejemplo la máquina tenía 2 procesadores por lo que la aplicación puede tener 24 conexiones contra los Web Services alojados en un mismo servidor.

 

Espero que esta información os sea de ayuda

- José Ortega Gutiérrez