Cómo usar el monitor de recursos para encontrar una fuga de memoria en Windows 11
🔍 WiseChecker

Cómo usar el monitor de recursos para encontrar una fuga de memoria en Windows 11

Solución rápida: Abre Monitor de recursos (búscalo en el menú Inicio o ejecuta resmon). Cambia a la pestaña Memoria. Ordena por la columna Confirmados (KB): el proceso cuyo valor de Confirmados crece de forma constante durante horas es el que está fugando memoria. Observa Errores graves/seg: valores persistentes distintos de cero indican que la fuga está forzando el uso de memoria de intercambio.

El uso de RAM de tu PC sube de 4 GB al inicio a 14 GB después de un día. No tienes 14 GB de trabajo abierto. Algo está fugando memoria. El Administrador de tareas muestra totales pero no historial; el Monitor de recursos te permite observar los valores de Confirmados por proceso a lo largo del tiempo para identificar qué aplicación es la culpable.

Síntoma: El uso de memoria aumenta de forma constante durante horas de actividad; quieres identificar qué proceso está fugando memoria.
Afecta a: Windows 11 (y Windows 10) con aplicaciones de larga duración.
Tiempo de solución: ~30 minutos (más de una hora de observación).

ADVERTISEMENT

Qué causa esto

Una fuga de memoria ocurre cuando una aplicación solicita memoria pero no la libera después de usarla. Con el paso de las horas o días, la memoria fugada se acumula: el proceso consume cada vez más RAM hasta que Windows comienza a paginar en disco (ralentización) o el proceso se bloquea. Causas comunes: navegadores con muchas pestañas, aplicaciones basadas en Electron (Slack, Discord, Teams, VS Code), utilidades de sincronización en segundo plano y ciertos productos antivirus.

Para identificar, necesitas observar los Confirmados (bytes confirmados) a lo largo del tiempo. Confirmados es la memoria que el proceso realmente ha asignado, no solo la reservada. Un crecimiento constante de Confirmados = fuga.

Método 1: Identificar el proceso con fugas con el Monitor de recursos

La ruta estándar. Integrado en Windows.

  1. Pulsa Win + R, escribe resmon, pulsa Entrar.
  2. Cambia a la pestaña Memoria.
  3. La sección superior muestra todos los procesos con estas columnas: Imagen, PID, Errores graves/seg, Confirmados (KB), Conjunto de trabajo (KB), Compartible (KB), Privado (KB).
  4. Haz clic en el encabezado de la columna Confirmados (KB) para ordenar de forma descendente. Los mayores consumidores de memoria están arriba.
  5. Anota los valores de Confirmados de los 5 procesos principales. Espera de 1 a 4 horas. Vuelve al Monitor de recursos.
  6. Compara los valores de Confirmados ahora vs. antes. Los procesos cuyos Confirmados aumentaron significativamente sin hacer más trabajo están fugando memoria.
  7. Para un seguimiento automatizado a largo plazo: usa el Monitor de rendimiento (perfmon). Agrega el contador Proceso → Conjunto de trabajo → (nombre del proceso). Configúralo para registrar en un archivo durante 24 horas.
  8. Observa la columna Errores graves/seg: si un proceso muestra constantemente valores distintos de cero, se está viendo forzado a paginar memoria de entrada/salida. Señal de presión de memoria.

Este es el paso de diagnóstico. Identificar qué proceso fuga es la mitad de la batalla.

ADVERTISEMENT

Método 2: Usar el Explorador de procesos para un análisis más profundo

Para más detalle del que proporciona el Monitor de recursos.

  1. Descarga Process Explorer de Microsoft Sysinternals (gratuito).
  2. Ejecútalo como administrador. La interfaz muestra todos los procesos en un árbol.
  3. Haz clic derecho en cualquier encabezado de columna → Seleccionar columnas → pestaña Memoria del proceso. Marca Bytes privados, Conjunto de trabajo, Tamaño virtual.
  4. Ordena por Bytes privados. Esta es la medida más fiable del compromiso de memoria de un proceso.
  5. Haz clic derecho en un proceso sospechoso → Propiedades → pestaña Gráfico de rendimiento. Muestra el uso de memoria en tiempo real e histórico para ese proceso.
  6. Para un análisis más profundo: haz clic derecho en el proceso → Propiedades → pestaña Rendimiento. Observa Delta de errores de página y Delta del conjunto de trabajo. Aumentos repentinos grandes indican asignación activa.
  7. Para aplicaciones basadas en Electron (múltiples procesos secundarios): haz clic derecho en el proceso de nivel superior → Árbol de procesos. Suma la memoria de los procesos secundarios: este es el footprint total de la aplicación.

Process Explorer es la herramienta adecuada cuando necesitas entender dónde en una aplicación compleja está la fuga.

Método 3: Usar el Kit de herramientas de rendimiento de Windows para el seguimiento de memoria a nivel de kernel

Para desarrolladores y usuarios avanzados que investigan fugas no obvias.

  1. Instala Windows Performance Toolkit (WPT): parte del Kit de implementación y evaluación de Windows (ADK), gratuito de Microsoft.
  2. Inicia Windows Performance Recorder (WPR).
  3. Selecciona el perfil: General → Uso de montón. Esto rastrea todas las asignaciones de montón.
  4. Haz clic en Iniciar. Usa la PC normalmente durante 1 a 4 horas. Cuanto más tiempo, más útil.
  5. Haz clic en Guardar para capturar el seguimiento. WPR escribe un archivo ETL.
  6. Abre el seguimiento en Windows Performance Analyzer (WPA). Navega a Memoria → Instantánea de montón.
  7. El analizador muestra las asignaciones de montón por proceso. Busca asignaciones no liberadas que crecen con el tiempo: esas son las fugas.
  8. Para aplicaciones .NET: usa dotnet-counters o PerfView para el análisis del montón administrado. Las fugas de .NET a menudo se esconden detrás de referencias a raíces de GC; las herramientas estándar no las detectan.

Este es el camino de diagnóstico profundo. Úsalo para desarrollo o cuando las herramientas estándar no identifiquen la aplicación con fugas.

ADVERTISEMENT

Cómo verificar que la solución funcionó

  • Después de reiniciar el proceso sospechoso, el uso de memoria debería caer bruscamente.
  • En las próximas horas, el valor de Confirmados del proceso debería mantenerse relativamente plano, no subiendo 100 MB+/hora.
  • La presión total de memoria del sistema debería reducirse: Administrador de tareas → Rendimiento → Memoria: En uso se mantiene estable en lugar de subir.

Si nada de esto funciona

Si has identificado la aplicación con fugas pero no puedes solucionarlo (es de terceros, no hay actualización disponible), soluciones alternativas. Reinicia la aplicación automáticamente a diario: programa una tarea en el Programador de tareas que cierre y reinicie la aplicación a las 3 AM. La fuga se restablece a la línea base cada día. Específico para navegadores: Edge y Chrome tienen ahorradores de memoria integrados. Edge: Configuración → Sistema → Ahorro de memoria → actívalo. Las pestañas en reposo reducen la memoria tras horas de inactividad. Para aplicaciones Electron (Slack, Discord, VS Code): usa la versión web en el navegador. Las versiones web a menudo tienen una mejor gestión de memoria porque comparten un proceso de navegador. Para fugas a nivel de controlador (raro pero posible): revisa el Monitor de confiabilidad (búscalo en Inicio). Las fugas del sistema se manifiestan como un proceso “Sistema” que crece, generalmente a nivel de controlador. Actualiza o revierte los controladores. Para PC con presión de memoria persistente e inexplicable: el malware puede fugar memoria deliberadamente. Ejecuta un análisis completo de Windows Defender y un análisis de Malwarebytes. Último recurso: aumenta la memoria virtual (archivo de paginación) para retrasar la ralentización y luego ataca la causa raíz cuando tengas tiempo.

En resumen: Monitor de recursos → pestaña Memoria → ordena por Confirmados. Anota los valores, espera horas, compara. El proceso que crece es la fuga. Para un análisis más profundo, el Gráfico de rendimiento de Process Explorer muestra la serie temporal por proceso.

ADVERTISEMENT