Investigación de eventos

En Windows disponemos de la posibilidad de seguimiento de eventos ETW (Event Tracing for Windows). Este seguimiento puede terminar en un informe relacionado a los eventos de rendimiento cuando estos ocurren, eventos como:

  • Cambios de contexto
  • Errores de página
  • Solicitudes E/S de archivo
  • Creación y finalización de procesos
  • Creación y finalización de hilos
  • Solicitudes de conexión, envíos y recepciones TCP.

Además, aplicaciones como IIS o el propio Directorio Activo también están preparados para ofrecernos un diagnóstico sobre el seguimiento de eventos. En IIS por ejemplo, el controlador HTTP, Inetinfo, filtro ISAPI, peticiones CGI e incluso peticiones ASP, que proporcionan eventos de inicio y fin de solicitudes específicas nos permiten seguir el camino seguido por una solicitud GET HTTP individual en diferentes etapas de su proceso por entre dichos componentes.

Seguimiento de eventos no sólo graba cuando ocurren los eventos, sino que también captura información especifica que puede usarse para identificar el propio evento y la aplicación que lo causa. Los eventos se registran en un archivo que podemos consultar. El seguimiento de eventos es una técnica que la podemos utilizar para diagnosticar problemas de rendimiento que no nos son fáciles de resolver mediante otras herramientas ya vistas.

Como gran beneficio tenemos a su gran precisión. Podemos saber exactamente que ha pasado y cuando. Aunque en su contra hay inconvenientes que debemos conocer. Uno de los  inconvenientes es la posibilidad de que se generen cantidades de datos muy grandes y que complican su propio análisis. Otro es que un análisis manual resulta complejo, aunque Windows Server 2003 incluye una herramienta llamada tracerpt.exe que simplifica la cosa. Si deseamos conocer un contador solamente de entre muchos eventos, lo normal sería usar el monitor del sistema, si por el contrario, necesitamos entender con detalle la secuencia de eventos asociados a un problema de rendimiento, entonces usar Seguimiento de eventos, que nos proporcionará una extensa variedad de eventos de sistema y aplicaciones.

TRACERPT

Investigar datos en Windows Server 2003 se compone de recoger y reunirlos usando sesiones de registro que los graben en un archivo. Podemos crear y administrar las sesiones de seguimiento con Log manager. Contamos además con los registros de seguimiento facilitados por Alertas y registros de rendimiento en la consola de Rendimiento que nos ofrece ciertas facilidades interactivas para definir sesiones de seguimiento de eventos, iniciarlas o detenerlas. Aunque estas facilidades interactivas no sean más que un subconjunto de opciones de definición de seguimiento de las que dispone Logman. Logman tiene además la ventaja que puede usarse junto a scripts para automatizar todos los aspectos del registro de seguimiento de eventos. Tracerpt.exe formatea los datos y proporciona varios informes integrados.

En una sesión de seguimiento, nos comunicamos con los proveedores de datos de seguimiento seleccionados que son los responsables de informar siempre que ocurran los eventos. Cuando un evento ocurre, el proveedor devuelve información sobre el mismo evento a la sesión de seguimiento, normalmente el servicio de Alertas y registros de rendimiento y éste a su vez graba una entrada en el archivo de registro.

Los registros de seguimiento se guardan en formato binario y con la extensión *.etl. Podemos usar archivos de seguimiento circular o secuencial. Y como con los registros de contadores podemos establecer su límite de tamaño. Cuando un archivo circular alcanza el límite establecido el registro de eventos sigue, desde el inicio del archivo y reemplazando los datos antiguos, en uno secuencial la sesión de seguimiento finaliza.

Luego, para ver los archivos de una forma aceptable necesitamos una herramienta de análisis como Tracerpt.exe que procesa el archivo de registro de salida y transforma los datos binarios en CSV (separado por comas). Disponemos también de informes usando la opción –report de tracerpt.

Alertas y registros de rendimiento

Cuando abrimos el monitor de rendimiento observamos en el árbol del panel izquierdo la función de Alertas y registros de rendimiento y de ella cuelgan tres componentes: registros de contador, registros de seguimiento y alertas.

registroseguimiento01

Podemos crear registros de seguimiento desde aquí cuando queramos, con capacidades similares a las que hay disponibles para los registros de contador, como:

  • Administrar múltiples sesiones de registro de seguimiento desde una única consola(Aunque podemos tener definidas muchísimas más sesiones, hay un límite de 32 activas simultáneamente).
  • Iniciar y detener manualmente, bajo demanda, automáticamente o programando el horario de cada registro de las sesiones.
  • Detener cada registro según el tiempo transcurrido o del tamaño actual del archivo.
  • Especificar esquemas de nombrado automático e indicar un programa que se ejecutará cuando un registro de seguimiento se detiene.

El proceso del servicio de Alertas y registros de rendimiento Smlogsvc.exe es el responsable de ejecutar las funciones del registro de seguimiento que hayamos definido.

Configurar un registro de rendimiento

  1. Pulsamos en Registros de seguimiento en la consola (ver imagen anterior), en el panel derecho se nos mostrarán, si las hubiesen, las ya definidas. 
  2. Clic derecho sobre el panel, el menú contextual nos muestras dos opciones de creación de nuevos registros:
    registroseguimiento02
  3. Se nos pide un nombre para el registro:
    registroseguimiento03
    y se muestra el cuadro de configuración.
    registroseguimiento04
  4. Elegiremos entre los eventos del proveedor del sistema o de alguno de los proveedores de aplicación disponibles. Clic en el botón de Estado de proveedores para ver aquéllos proveedores específicos que están instalados en el equipo.
    registroseguimiento08
  5. Pasaremos por el resto de pestañas: Archivos de registro, Programación y Avanzadas para establecer las diferentes opciones.
    registroseguimiento05 registroseguimiento06
    registroseguimiento07

Los proveedores de eventos

Los proveedores de eventos son los responsables del envío de información sobre un evento al servicio de alertas y registro de rendimiento en cuanto ocurre. De forma predeterminada, en la pestaña General, la opción Proveedores que no son de sistema está marcada para mantener el registro de seguimiento por encima de un mínimo. Pulsaremos en el botón Agregar para incluir datos desde estos proveedores en el registro de seguimiento. Entre los proveedores de aplicaciones están Active Directory, MMQ, IIS, y la cola de impresión.

Si pulsamos en Sucesos registrados por el proveedor del sistema, se usa un proveedor compilado para eventos del kernel de Windows para monitorizar los procesos, hilos y otras actividades. Marcaremos las casillas que deseamos definir para el seguimiento.

*Creación /eliminación de procesos y/o subprocesos.

*E/S de disco

*TCP/IP de red

*Errores de página

*Detalles de archivo

Antes de conectar el seguimiento de una clase de suceso debemos tener claro el impacto sobre el rendimiento que causará. Si queremos hacer una prueba, con el monitor del sistema podemos seguir algunos contadores que usen sucesos que el proveedor del kernel pueda seguir durante varios minutos, comprobaremos entonces el tamaño de los archivos producidos y el sobreuso consumido por el seguimiento, que será proporcional a los sucesos ocurridos.

SistemaOperaciones de lectura de archivo/s (SystemFile Data Operations/sec)

SistemaOperaciones de control de archivo/s (SystemFile Control Operations/sec)

MemoriaErrores de página/s (MemoryPage faults/sec)

TCPv4Segmentos/s (TCPv4Segments/sec)

Configuración de las propiedades del registro

Las hojas de propiedades nos permiten establecer el seguimiento automatizado. Las opciones de archivo y programación son similares a las disponibles para registro de contadores. La pestaña de archivos de registro se usa para seleccionar el tipo de archivo y las opciones de nombrado automático. En la de programación podremos escoger las opciones de inicio manual o automático, establecer la hora en la que queremos que termine la sesión, determinando una hora o especificando una duración en segundos, minutos, horas, o días; o también indicando que se detenga cuando el archivo de registro alcance su tamaño límite especificado.

Pestaña

Configuración

Notas

General Selección de proveedores

Cuenta y contraseña.

Podemos reunir datos desde el equipo local únicamente. Configura los sucesos del proveedor del sistema.

Podemos usar Ejecutar como (Run As) para proporcionar usuario y contraseña en caso de equipos remotos.

Archivos de registro Tipo de archivo.

Nombrado automático.

Los archivos de seguimiento son archivos binarios con la extensión *.etl. Podemos seleccionar o binarios circulares –cuando llegan al final comienzan de nuevo por el principio del archivo sobrescribiendo los existentes-, o binarios secuenciales. Configuración de ubicación, nombre y tamaño de archivo.

Podemos elegir una secuencia de números a añadir o la hora y la fecha, para identificar al archivo.

Programación Métodos de inicio/detención manual o automáticos.

Horas de inicio/detención automáticos.

Detención automática cuando el archivo alcanza su límite de tamaño.

Proceso cuando el archivo se cierra.

Podemos especificar que se detenga la recogida de datos cuando el archivo esté lleno.

Inicio y detención según la hora del día, o especificar la hora de inicio y su duración.

En casos de recogida de datos continua, iniciar un archivo nuevo en cuanto el archivo se cierra. También podemos iniciar automáticamente la ejecución de un comando al cerrarse el archivo.

Avanzada Tamaño de búfer.

Búferes mínimos y máximos.

Transferencia de datos desde el búfer al archivo de registro.

Aumentar el número de búferes en caso de seguimiento de demasiados sucesos.

El tiempo máximo en segundos, que las entradas de seguimiento se mantienen en memoria sin transferirse al archivo de seguimiento en el disco.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *