Telemetría local con PerfMon y Data Collector Sets en Windows

Última actualización: 17/12/2025
Autor: Isaac
  • PerfMon y los Data Collector Sets permiten capturar telemetría local detallada de CPU, memoria, disco, red y aplicaciones en Windows.
  • La combinación de contadores adecuados, programación de capturas y herramientas como Logman o Resource Monitor facilita el diagnóstico de problemas de rendimiento.
  • Integrar contadores de terceros (como SANsymphony/DataCore) y mantener el sistema actualizado con hotfixes refuerza la fiabilidad del entorno de monitorización.

Telemetría local con PerfMon Data Collector Sets

La telemetría local con PerfMon y los Data Collector Sets es una de esas joyas ocultas de Windows que casi nadie explota a fondo, pero que marcan la diferencia cuando tienes que diagnosticar cuellos de botella, caídas de rendimiento o errores intermitentes en servidores y aplicaciones. PerfMon (Performance Monitor) viene de serie en Windows, no requiere licencias adicionales y, bien configurado, te da una visión quirúrgica de lo que está pasando en tu infraestructura.

Aunque mucha gente usa PerfMon solo para echar un vistazo rápido a la CPU o la memoria, el verdadero potencial está en combinarlo con los Data Collector Sets, las trazas de eventos y herramientas como Logman, Resource Monitor o la integración con consolas de terceros (por ejemplo, SANsymphony o soluciones de almacenamiento como DataCore). Con una estrategia de telemetría local bien planteada puedes registrar datos durante días o semanas, automatizar la rotación de logs, generar informes y tener munición de sobra para resolver problemas complejos.

Qué es PerfMon y por qué es clave para la telemetría local

Monitor de rendimiento de Windows PerfMon

PerfMon (Performance Monitor o perfmon.msc) es la consola gráfica clásica de Windows para ver y registrar contadores de rendimiento del sistema y de aplicaciones. Te permite observar en tiempo real o en diferido métricas de CPU, memoria, disco, red, servicios concretos y software como SQL Server, además de exponer esos datos a otras herramientas de monitorización.

A nivel práctico, PerfMon se organiza en torno a objetos, contadores e instancias. Los objetos representan componentes (Procesador, Memoria, Disco físico, SQL Server, etc.), los contadores son las métricas concretas (% Processor Time, Avg. Disk sec/Transfer, Pages/sec, etc.) y las instancias diferencian elementos dentro de un objeto (por ejemplo, cada disco físico o cada base de datos).

Una ventaja muy potente es que PerfMon puede trabajar tanto contra el equipo local como contra equipos remotos, siempre que tengas permisos adecuados. Esto lo convierte en una herramienta ideal para administrar entornos Windows Server en producción, incluyendo roles críticos como SQL Server, servicios de impresión, aplicaciones web, almacenamiento, etc.

Los datos que registra PerfMon se pueden exportar en formatos estándar como CSV, BLG o TSV, por lo que es muy sencillo intercambiarlos con otros equipos, automatizar análisis, o conservar capturas históricas para auditorías y comparativas.

Aunque es posible usar PerfMon de forma puramente visual (con la típica gráfica de líneas), su auténtica fuerza está en el registro continuo mediante Data Collector Sets. Esos conjuntos permiten capturar telemetría de forma controlada en el tiempo, con intervalos de muestreo configurables, límites de duración y tamaño, alertas y generación de informes automáticos.

Herramientas relacionadas: Resource Monitor, Monitoring Tools y Reports

Herramientas de monitorización en Windows

Dentro de la consola de rendimiento de Windows, no solo tienes PerfMon en modo gráfico clásico, sino un conjunto de herramientas complementarias que te facilitan el diagnóstico día a día: Resource Monitor, Monitoring Tools y Reports. Cada una cubre un nivel de detalle distinto.

Resource Monitor es la vista “de trinchera” para ver qué está ocurriendo ahora mismo en el servidor. Está organizada en pestañas: Overview (resumen general), CPU, Disco, Red y Memoria. Cada pestaña combina tablas de procesos/servicios con gráficas en tiempo real. Si seleccionas uno o varios procesos en CPU, esa selección actúa como filtro para el resto de secciones, lo que ayuda a aislar qué procesos están disparando I/O, red o consumo de RAM.

La pestaña de Disco muestra, por ejemplo, lecturas, escrituras y totales por proceso, y un segundo bloque con el detalle por cada archivo abierto. En Red puedes ver procesos con actividad de red, conexiones TCP y puertos de escucha. Es ideal para saber si la lentitud viene de un proceso concreto o de un patrón general del sistema.

En la parte de Monitoring Tools tienes el Performance Monitor “clásico”, con varias vistas: Line (línea, la típica), Histogram (histograma de barras) y Report (modo informe). Además cuenta con un área de resumen que muestra para el contador seleccionado el último valor, la media, el máximo, el mínimo y la duración de la muestra, lo que resulta muy útil para detectar tendencias sin necesidad de exportar datos.

La configuración de PerfMon se organiza en pestañas: General, Source, Data, Graph y Appearance. En General puedes mostrar u ocultar la leyenda, la barra de valores o la barra de herramientas; en Source decides si visualizas actividad actual, cargas un log de datos o lees desde una base de datos de rendimiento, además de ajustar el rango de tiempo (Time Range) a mostrar.

Informes y gráficos de PerfMon

En la pestaña Data se añaden o quitan contadores, y se personalizan color, escala, grosor y estilo de línea. La pestaña Graph permite ajustar el tipo de gráfico, los ejes, los valores mínimos y máximos del eje vertical y los tiempos que aparecen en el eje horizontal. En Appearance puedes cambiar colores y fuentes del monitor.

La sección de Reports te da acceso a los informes generados a partir de los Data Collector Sets. Puedes ver informes organizados por tipo (sistema, usuario, eventos de traza) y navegar por las métricas agregadas. Aunque no es un sistema de reporting avanzado como un BI, los informes de PerfMon sirven muy bien para un primer diagnóstico y para documentar el comportamiento del servidor en un periodo determinado.

Data Collector Sets: el corazón de la telemetría con PerfMon

Los Data Collector Sets (conjuntos recopiladores de datos) son agrupaciones de contadores, trazas y configuraciones que definen qué telemetría se va a capturar, con qué frecuencia, durante cuánto tiempo y dónde se almacenará. Windows los organiza en recopiladores de usuario, de sistema y de eventos de traza.

  Windows 95, el hito que cambió el PC para siempre

Antes de entrar a fondo, conviene distinguir entre contadores de rendimiento (Performance Counters) y datos de traza de eventos (Event Trace Data). Los primeros están ligados a un temporizador del sistema y son ideales para diagnósticos de alto nivel (CPU, memoria, disco, red, etc.). Los segundos recogen eventos más detallados de aplicaciones o del propio sistema operativo, muy útiles para localizar errores de software, problemas de hardware o sobreutilización de recursos y para explorar datos del sistema en detalle.

Los recopiladores de usuario pueden incluir varios tipos de datos: Performance Counters (contadores de rendimiento clásicos), Event Trace Data (eventos de traza), System Configuration Information (información de configuración y registro) y Performance Counter Alert (alertas que se disparan cuando un contador supera un umbral). Estas alertas se pueden registrar en el Visor de eventos e incluso desencadenar tareas automáticas.

En la práctica, cuando trabajas con telemetría local para diagnóstico, lo habitual es crear Data Collector Sets personalizados de tipo Performance Counter, definidos por el usuario y pensados para registrar durante un periodo prolongado. No obstante, en entornos avanzados tiene mucho sentido combinar contadores con Event Trace Data para reducir el tiempo de depuración de errores complejos.

Dentro de la consola, los Data Collector Sets se clasifican como User Defined (definidos por el usuario), de sistema o de eventos de traza. En la vista de Reports verás reflejados los resultados de estos conjuntos una vez se completa la captura, diferenciando entre objetos predefinidos de sistema y aquellos creados por el administrador.

Cómo crear un Data Collector Set personalizado con PerfMon

El proceso de creación manual de un Data Collector Set te da un control muy fino sobre lo que vas a medir. El camino típico en la consola es partir de User Defined y crear un nuevo conjunto desde cero, evitando las plantillas cuando quieres algo muy ajustado a tu caso.

Los pasos conceptuales son sencillos: defines el nombre y el tipo de datos, añades los contadores, configuras los intervalos de muestreo, eliges la carpeta de salida y estableces las credenciales, seguridad y programación. Después puedes establecer condiciones de parada (por tiempo o tamaño de log) y reglas de reinicio automático.

Un flujo típico sería algo así: te sitúas sobre “User Defined”, eliges “New Data Collector Set”, le pones un nombre y seleccionas “Create manually (Advanced)”. Si optaras por “Create from a template” estarías importando un XML con contadores predefinidos, pero ese enfoque tiene una pega importante: los XML dependen de la versión y del Service Pack del sistema operativo, por lo que a menudo fallan si no coinciden al milímetro.

Una vez elegido el modo avanzado, escoges si quieres crear archivos de log para análisis posterior. En el caso de performance counters, la siguiente pantalla te pedirá que añadas contadores mediante el botón “Add”. En esa misma ventana configuras el intervalo de muestreo y las unidades, dos parámetros críticos para no generar megas de datos innecesarios ni perder detalle en picos muy breves.

Tras pulsar “Add” seleccionas el equipo (local o remoto), el objeto de contador y las instancias que quieras incluir. Si marcas “Show description”, PerfMon muestra una breve explicación de cada contador, lo que ayuda a evitar errores a la hora de elegir. Repites la operación tantas veces como contadores necesites y cierras con “OK”. Luego eliges la ruta donde se guardará el fichero de log y finalizas el asistente.

Al terminar, puedes abrir las propiedades del Data Collector Set recién creado. En la pestaña principal, configuras la cuenta de usuario (Run As) que ejecutará el recopilador, que debe tener permisos adecuados. La pestaña “Directory” permite ajustar el subdirectorio y el patrón de nombre (Subdirectory y Subdirectory name format), algo útil cuando quieres separar capturas por día u hora.

En la pestaña “Security” se definen los permisos de acceso al Data Collector Set, y en “Schedule” puedes programar automáticamente su inicio. Por último, la pestaña “Stop Condition” fija las condiciones de finalización: duración total (Overall duration) y, si así lo decides, reinicio automático cuando se alcancen ciertos límites de tiempo o tamaño (Restart the data collector set at limits, con un máximo en MB).

Configurar capturas periódicas: ejemplo de telemetría en horario laboral

Un escenario muy habitual es el de una aplicación que sufre timeouts o lentitud en momentos aleatorios del día. No sabes cuándo se va a repetir el problema, así que necesitas capturar telemetría de forma continua en horario de producción, rotando los ficheros para no ocupar el disco en exceso.

Imagina el caso de un servidor Windows Server 2012 (válido también para otras versiones) que da errores de autenticación en una solución como YSoft SafeQ. Sabes que los fallos se producen entre las 8:00 y las 20:00, pero no exactamente cuándo, y no quieres guardar un mes entero de logs. El objetivo es registrar datos cada hora, mantener la telemetría unos pocos días, limitar el espacio máximo (por ejemplo, 10 GB) y disponer de informes gráficos listos para revisar.

En PerfMon puedes crear un Data Collector Set partiendo de la plantilla “System Performance”, lo que añade una selección recomendada de contadores. Luego ajustas la configuración: en las propiedades del conjunto, pestaña “Stop Condition”, fijas una duración total de 60 minutos para que cada ejecución genere un archivo de una hora. En “Data Manager” desmarcas “Maximum folders”, estableces la política de recursos como “Delete oldest” y marcas “Maximum root path size” a, por ejemplo, 10000 MB, de manera que los ficheros más antiguos se borren automáticamente cuando se alcanza el límite.

  Cómo ver qué funciones DirectX están habilitadas: D3D, Sonido e Entrada en Windows

El siguiente paso es programar el Data Collector Set con el Programador de tareas (taskschd.msc). Navegas hasta Task Scheduler Library > Microsoft > Windows > PLA, localizas la tarea que tiene el mismo nombre que el Data Collector Set y ajustas su programación: desencadenador diario, inicio a las 8:00, repetición cada 1 hora durante 12 horas. En la pestaña “Settings” eliges “Queue a new instance” para que se encolen nuevas instancias si hiciera falta, y revisa la configuración de reinicios automáticos.

Conviene probar que la tarea funciona: haces clic derecho en la tarea, seleccionas “Run” y verificas que el estado cambia a “Running”. Esperas un par de minutos y compruebas que sigue en ejecución. Luego la detienes con “End” y te aseguras de que vuelva a “Ready”. A partir de ahí, los informes aparecerán automáticamente en la sección Reports > User Defined, bajo el nombre del Data Collector Set, con la hora de inicio de cada captura en el nombre.

Desde esos informes puedes ver el “Summary” y “Diagnostic Result” para un vistazo general y, si necesitas detalle, abrir las categorías concretas (por ejemplo, Disk > Physical Disk > Avg. Disk sec/Transfer). También puedes cambiar la vista a “Performance Monitor” para analizar las gráficas con zoom sobre el momento exacto del problema.

Uso de Logman en entornos sin interfaz gráfica

En servidores Windows Server 2016 Core, Nano Server o instalaciones mínimas, no dispones de la GUI completa de PerfMon, pero eso no significa que debas renunciar a la telemetría. Para estos casos Microsoft proporciona Logman, una herramienta de línea de comandos (usable desde CMD o PowerShell) para crear, configurar y gestionar Data Collector Sets.

Con Logman puedes crear recopiladores de datos de tipo Performance Counter, Event Trace Data o System Configuration Information, así como definir Data Collector Sets de alerta. Además permite iniciar, detener y borrar conjuntos, configurar intervalos de muestreo, duración, rutas de log y opciones de repetición.

Un ejemplo típico: quieres medir el % Processor Time del procesador total cada hora, durante 30 días, con reinicio automático de los ficheros y guardando los logs en C:\perflogs. Podrías lanzar algo como:

logman create counter ContadorCPU -c «\Processor(_Total)\% Processor Time» -rf 720:00:00 -r -si 01:00:00 -o «c:\perflogs\daily_log»

En este comando, create counter indica que creas un recopilador de contadores, -c define el contador concreto, -rf marca la duración total (en este caso 720 horas, es decir, 30 días), -r indica que el conjunto se repite y -si fija el intervalo de muestreo en 1 hora. La opción -o define la ruta y nombre base de los archivos de salida.

Tras crear el Data Collector Set con Logman, recuerda iniciarlo explícitamente; de lo contrario no comenzará a capturar. Puedes hacerlo también con Logman (logman start ContadorCPU) o, si tienes GUI disponible, desde la consola de Performance Monitor. Ten en cuenta que si acabas de borrar un recopilador, Windows puede tardar un poco en procesar el cambio; si recibes errores, espera unos minutos o refresca la vista y vuelve a intentarlo.

Microsoft documentación oficial documenta en detalle todas las opciones avanzadas de Logman (incluyendo plantillas, exportación e importación de configuraciones y compatibilidad entre versiones) en su documentación oficial, que conviene revisar cuando quieras montar una solución de telemetría scriptada a gran escala.

Integración con herramientas de terceros y Windows PerfMon

Muchas plataformas de almacenamiento y virtualización, como DataCore SANsymphony, exponen sus contadores de rendimiento a través de Windows Performance Monitor. Esto se hace mediante una capa de integración que permite que las métricas específicas de ese software se vean, registren y analicen desde PerfMon como si fueran contadores nativos del sistema.

En el caso de DataCore, por ejemplo, existe una consola independiente llamada DataCore Performance Monitor Configuration, que se ejecuta localmente en un DataCore Server. Esta consola simplifica la selección de contadores e instancias relacionados con el rendimiento de SANsymphony, evitando que tengas que buscar entre la interminable lista de contadores del sistema operativo.

El flujo es el siguiente: desde la consola eliges categorías, instancias y contadores de SANsymphony, los añades a la lista de “Counters Currently Exported to PerfMon” y, a partir de ahí, creas Data Collector Sets desde esos contadores específicos. Un servicio de Windows llamado DataCore Perfmon Agent (DcsPerfMonAgent) se encarga de recopilar y enviar los datos a PerfMon. Si el servicio no está en arranque automático, la propia consola puede iniciarlo, pero conviene cambiar su startup type a Automatic para que sea persistente.

Desde el panel de Data Collector de la consola de DataCore puedes crear, modificar y borrar conjuntos de recopilación: das un nombre al Data Collector Set, seleccionas los contadores incluidos y guardas. También puedes editar Data Collector Sets ya existentes, añadiendo o quitando contadores según tus necesidades, o eliminar conjuntos completos cuando dejen de ser útiles.

La integración con Windows Performance Monitor tiene una ventaja doble: los datos quedan disponibles tanto para la propia consola de rendimiento (donde puedes ver gráficas, informes y logs), como para aplicaciones de terceros que lean contadores de Windows (sistemas de monitorización centralizada, herramientas de capacity planning, etc.). De esta forma tu telemetría local no se queda aislada, sino que se integra en la estrategia global de observabilidad de la organización.

Contadores clave para CPU, memoria, disco y SQL Server

A la hora de definir tus Data Collector Sets, es fundamental elegir bien los contadores. No se trata de añadir cientos de métricas a lo loco, sino de seleccionar aquellas que te van a dar información significativa sobre el estado del sistema y de tus aplicaciones.

  Cómo usar Scan for hardware changes para detectar cambios de hardware en Windows

Para CPU, los contadores más habituales en PerfMon son % Processor Time, % Idle Time, % Privileged Time y % User Time. El primero refleja el porcentaje de tiempo que los procesadores dedican a ejecutar hilos de programas (actividad general), mientras que % Idle Time indica el tiempo inactivo (en sistemas de servidor suele ser bajo en horas punta). % Privileged Time muestra el tiempo que el procesador emplea en código de kernel/sistema operativo, y % User Time el dedicado a procesos de usuario (SQL Server, antivirus, aplicaciones, etc.). Una combinación elevada de % Processor Time y % Privileged Time puede sugerir problemas de drivers, I/O o kernel.

En memoria, dos contadores muy reveladores son Pages/sec y Page Faults/sec. Pages/sec indica la frecuencia con la que el sistema usa disco para intercambiar datos relacionados con la memoria (es decir, cuánto está paginando), mientras que Page Faults/sec cuenta los fallos de página (errores que implican acceder a memoria que no estaba donde se esperaba). Valores sostenidamente altos suelen apuntar a falta de RAM o a problemas de configuración que fuerzan un exceso de paginación.

Para almacenamiento, PerfMon ofrece contadores como Avg. Disk sec/Read, Avg. Disk sec/Write, Current Disk Queue Length y Avg. Disk Queue Length. Los dos primeros miden el tiempo medio que se tarda en leer o escribir en disco; si son altos de forma constante, tienes un cuello de botella de I/O. Las colas (Current y Avg. Disk Queue Length) indican la cantidad de operaciones pendientes; si aumentan mucho al mismo tiempo que se disparan los tiempos de lectura/escritura, probablemente haya un problema de saturación de disco o de procesos que generan demasiadas operaciones.

En servidores de bases de datos, los contadores de SQL Server son esenciales: grupos como SQL Server Access Methods (uso de tablas e índices), SQL Server Buffer Manager (relacionado con la cache de datos: cache hit ratio, free pages, life expectancy…), SQL Server General Statistics (logins, logouts, conexiones de usuario), SQL Server Latches (bloqueos cortos en memoria), SQL Server Locks (bloqueos e interbloqueos) y SQL Server SQL Statistics (número de batches, compilaciones y recompilaciones). Estos contadores ayudan al diagnóstico de errores en bases de datos y, combinados con CPU, memoria y disco, permiten separar si el problema es de la base de datos o del sistema subyacente.

Un detalle importante es que los valores de los contadores nunca deben interpretarse aislados. Hay que tener en cuenta el periodo medido, el número de muestras, el contexto (carga típica del sistema, número de usuarios, procesos en ejecución) y si existen varios contadores que, en conjunto, apuntan a la misma causa. Muchas veces no verás picos brutales en un solo contador, sino pequeñas tensiones repartidas en varios, lo que complica el diagnóstico pero hace aún más valioso disponer de telemetría histórica.

Hotfixes, compatibilidad y detalles de sistema

En algunas versiones de Windows, especialmente Windows 7 y Windows Server 2008 R2, PerfMon y sus componentes asociados han tenido problemas puntuales que Microsoft ha solucionado mediante revisiones específicas (hotfix). Estos hotfix suelen abordar fallos concretos descritos en artículos de la Knowledge Base y, por recomendación oficial, solo deberían aplicarse si tu sistema se ve afectado exactamente por el problema descrito.

Normalmente, cuando una revisión está disponible para descarga directa, verás en el artículo de Microsoft una sección de “Descarga de revisión disponible”. Si no aparece, hay que contactar con el servicio de soporte de Microsoft para obtenerla. A veces, al aplicar estos hotfix se instalan nuevos archivos (DLL, EXE, OCX, etc.) con versiones específicas que indican si el sistema está en RTM, SP1, GDR o LDR. Además, se añaden archivos MANIFEST y MUM junto con catálogos de seguridad (.cat) para mantener la coherencia de los componentes.

En cuanto a requisitos, muchos de estos hotfix necesitan que el sistema tenga instalado un determinado Service Pack (por ejemplo, SP1 en Windows 7/2008 R2) y, en la mayoría de los casos, no requieren cambios en el registro pero sí un reinicio del equipo tras su instalación. Estos detalles son clave cuando quieres garantizar que tu entorno de telemetría (PerfMon, Resource Monitor, Data Collector Sets, etc.) se comporta de manera estable en el tiempo.

En la documentación técnica de Microsoft encontrarás tablas extensas con el detalle de los archivos actualizados: nombre, versión, tamaño, fecha, hora y plataforma (x86, x64, IA-64). Aunque puede parecer excesivamente bajo nivel, esta información es muy útil para verificar que el hotfix está bien aplicado y que no hay conflictos de versiones entre bibliotecas del sistema.

Todo este ecosistema de revisiones, compatibilidad de plantillas, versiones de XML de Data Collector Sets y herramientas auxiliares como Logman, hace que la telemetría local con PerfMon tenga cierta complejidad, pero también ofrece una enorme flexibilidad para adaptarse a prácticamente cualquier entorno Windows, desde estaciones de trabajo hasta grandes granjas de servidores.

Cuando combinas contadores bien elegidos, Data Collector Sets planificados con cabeza, integración con otras plataformas y una configuración cuidadosa de límites de espacio y tiempo, PerfMon se convierte en un aliado muy potente para entender qué hace tu infraestructura, anticipar problemas y resolver incidencias que a simple vista serían imposibles de diagnosticar solo con síntomas de usuario.

Error Detectado En La Base De Datos De Actualización
Artículo relacionado:
Error Detectado En La Base De Datos De Actualización De Windows