Capturar volcados con DebugDiag usando contadores de rendimiento

Vamos a utilizar el Debug Diagnostic Tool (DebugDiag) para configurar reglas que se activen cuando se cumplan unos requisitos relacionados con los contadores de rendimiento. En concreto voy a poner de ejemplo cómo configurarlos para un consumo alto de CPU.

Lo que vamos a hacer es crear una regla que se active cuando el consumo del procesador sea superior al 80% durante 5 segundos y capture 3 volcados de memoria cada 30 segundos.

Ahora viene la pregunta ¿por qué tenemos que capturar 3 volcados y por qué cada 30 segundos?. La respuesta es sencilla, un solo volcado puede darnos una información sesgada porque sólo veríamos unos hilos en ejecución pero no sabríamos cuánto tiempo habrían estado ejecutándose, si están parados, o si hemos cogido por casualidad al Garbage Collector funcionando…

Los 30 segundos entre volcados nos indican cómo es la evolución de la aplicación en el tiempo. No olvidemos que 30 segundos en una ejecución de internet es un periodo que se puede considerar lago.

Estas son las instrucciones:

  1. Instalar el DebugDiag en el servidor: https://www.microsoft.com/download/en/details.aspx?id=26798
  2. Crear una nueva regla del tipo Performance y pulsar sobre “Next. También podéis crear la regla con doble click y seleccionando “Add rule

image

  1. Seleccionamos “Performance Counters” y pulsamos sobre “Next”.

image

 

  1. Hacemos click en Add Perf Triggers...

image

  1. Dentro de la categoría Processor seleccionamos %Processor Time y la instancia _Total

image

  1. Pulsamos sobre Edit Thresholds

image

  1. Escogemos Above, introducimos 80 en el campo this threshold y 5 en el campo for this number of seconds

image

  1. Pulsamos sobre Next

image

  1. Pulsamos sobre Add Dump Target

image

  1. Dentro de Target type seleecionamos Web application pool y ahí buscamos el Application Pool que contiene a nuestra aplicación. Una vez hecho eso pulsamos sobre OK

image

  1. Pulsamos sobre Next

image

  1. Introducimos 30 en el campo Generate a UserDump every, 3 en el de Stop after Generating y seleccionamos la opción de Collect Full UserDumps

image

  1. Escribimos un nombre descriptivo como : “Application High CPU Usage” y seleccionamos la ruta dónde se guardarán los volcados de memoria.

image

  1. Dejamos selecionada la opción de “Activate rule now” y pulsamos sobre “Finish

image

  1. Ahora tenemos que reproducir el comportamiento de bajo rendimiento en nuestra aplicación para que se puedan capturar los volcados de memoria.

Esta es una forma muy sencilla de capturar volcados de memoria según los contadores que queramos emplear.

 

Espero que os sirva de ayuda

- José Ortega Gutiérrez