Cómo corregir la fuga de memoria de ndu.sys en perfmon en Windows 11
🔍 WiseChecker

Cómo corregir la fuga de memoria de ndu.sys en perfmon en Windows 11

Al abrir el Monitor de rendimiento (Perfmon) en Windows 11, es posible que veas que NDU.sys consume una cantidad anormalmente alta de memoria de grupo no paginada. Esta fuga de memoria puede provocar ralentizaciones del sistema, fallos de aplicaciones e incluso errores de pantalla azul con el tiempo. La causa raíz es el controlador de uso de diagnóstico de red (NDU), que recopila telemetría sobre el uso de la red y, a veces, no libera la memoria asignada. Este artículo explica por qué NDU.sys pierde memoria y proporciona cuatro métodos probados para detener la fuga y recuperar el rendimiento del sistema.

Puntos clave: Detener la fuga de memoria de NDU.sys en Windows 11

  • Perfmon > Memoria > Grupo no paginado > NDU.sys: Confirma la fuga al mostrar NDU.sys usando cientos de MB de memoria de grupo no paginada.
  • Services.msc > Servicio de directivas de diagnóstico > Detener y deshabilitar: Detiene el servicio DPS que carga NDU.sys, liberando la memoria filtrada inmediatamente.
  • Registro > HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDU > Inicio = 4: Deshabilita el controlador NDU permanentemente al arrancar, evitando que la fuga regrese.
  • Símbolo del sistema > sc config NDU start=disabled: Método alternativo de línea de comandos para deshabilitar el controlador NDU sin editar el registro.

ADVERTISEMENT

Por qué NDU.sys pierde memoria en Windows 11

NDU.sys es el controlador en modo kernel del componente de uso de diagnóstico de red en Windows 11. Su trabajo es rastrear el uso de datos de red por aplicación para que el sistema pueda mostrar estadísticas de red en el Administrador de tareas y en Configuración. El controlador asigna memoria de grupo no paginada para almacenar contadores de red por proceso. En algunas compilaciones de Windows 11, un error en el controlador hace que no libere esta memoria cuando un proceso monitoreado sale. Con el paso de las horas o los días, la memoria de grupo filtrada crece sin límite.

Puedes verificar la fuga usando el Monitor de rendimiento (Perfmon). Abre Perfmon, expande Memoria, selecciona Bytes de grupo no paginado y agrega el proceso NDU.sys al gráfico. Si NDU.sys muestra un recuento de memoria en aumento constante que nunca baja, la fuga está activa. Un sistema saludable muestra NDU.sys usando menos de 50 MB de grupo no paginado. Un sistema con fugas puede mostrar 500 MB o más, lo que hace que el sistema se quede sin memoria disponible.

Cuatro métodos para detener la fuga de memoria de NDU.sys

La forma más directa de detener la fuga es deshabilitar el controlador NDU o los servicios que lo cargan. Los siguientes métodos están ordenados de menor a mayor invasividad. El Método 1 y el Método 2 son reversibles y no requieren reinicio. El Método 3 y el Método 4 evitan que el controlador se cargue al arrancar y requieren un reinicio para que surtan efecto.

Método 1: Detener el Servicio de directivas de diagnóstico en Services.msc

El Servicio de directivas de diagnóstico (DPS) es el servicio en modo usuario que interactúa con NDU.sys. Detener DPS hace que NDU.sys libere sus asignaciones de memoria. Esta es la solución más rápida y no requiere reinicio.

  1. Abrir la consola de Servicios
    Presiona Win + R, escribe services.msc y presiona Enter. Haz clic en Sí si el Control de cuentas de usuario lo solicita.
  2. Localizar el Servicio de directivas de diagnóstico
    Desplázate hasta Servicio de directivas de diagnóstico. El nombre del servicio es DPS y su estado aparece en la columna Estado.
  3. Detener el servicio
    Haz clic derecho en Servicio de directivas de diagnóstico y selecciona Detener. El servicio se detiene inmediatamente. El uso de memoria de NDU.sys baja en 30 segundos a medida que el controlador libera su grupo.
  4. Verificar la solución en Perfmon
    Abre Perfmon nuevamente y verifica el contador Bytes de grupo no paginado para NDU.sys. El valor debería disminuir rápidamente hacia un nivel normal por debajo de 50 MB.

Método 2: Deshabilitar el Servicio de directivas de diagnóstico permanentemente

Si la fuga regresa después de un reinicio, deshabilita el servicio DPS permanentemente. Esto evita que NDU.sys se cargue por completo.

  1. Abrir la consola de Servicios
    Presiona Win + R, escribe services.msc y presiona Enter.
  2. Abrir las propiedades de DPS
    Haz clic derecho en Servicio de directivas de diagnóstico y selecciona Propiedades.
  3. Cambiar el tipo de inicio a Deshabilitado
    En la pestaña General, haz clic en el menú desplegable Tipo de inicio y selecciona Deshabilitado. Haz clic en Aplicar y luego en Aceptar.
  4. Reiniciar Windows 11
    Reinicia el sistema. Después del reinicio, NDU.sys no se carga y la fuga no ocurre.

Nota: Deshabilitar DPS desactiva los servicios de diagnóstico y telemetría de Windows. Las estadísticas de uso de red en el Administrador de tareas pueden dejar de actualizarse. Esto es un intercambio por estabilidad.

Método 3: Deshabilitar el controlador NDU mediante el Registro

Este método apunta directamente al controlador kernel NDU. Es más preciso que deshabilitar DPS porque solo afecta a NDU.sys y deja otros componentes de diagnóstico en funcionamiento.

  1. Abrir el Editor del Registro
    Presiona Win + R, escribe regedit y presiona Enter. Haz clic en Sí cuando UAC lo solicite.
  2. Navegar a la clave del controlador NDU
    Ve a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDU. Pega esta ruta en la barra de direcciones o navega manualmente.
  3. Modificar el valor Inicio
    Haz doble clic en el DWORD Inicio en el panel derecho. Cambia los Datos del valor de 1 a 4. El valor 1 significa que el controlador se carga automáticamente. El valor 4 significa que el controlador está deshabilitado.
  4. Reiniciar Windows 11
    Cierra el Editor del Registro y reinicia el sistema. Después del reinicio, NDU.sys no se carga.

Método 4: Deshabilitar el controlador NDU usando el Símbolo del sistema

Para los usuarios que prefieren la línea de comandos, la herramienta sc puede deshabilitar el controlador NDU sin tocar el registro directamente.

  1. Abrir el Símbolo del sistema como administrador
    Presiona Win + S, escribe cmd, haz clic derecho en Símbolo del sistema y selecciona Ejecutar como administrador. Haz clic en Sí.
  2. Deshabilitar el controlador NDU
    Escribe el siguiente comando y presiona Enter:
    sc config NDU start=disabled
    Nota el espacio después del signo igual. El comando devuelve un mensaje de éxito si el cambio se acepta.
  3. Reiniciar Windows 11
    Reinicia el sistema. El controlador NDU ya no se carga al inicio.

ADVERTISEMENT

Si la fuga de memoria de NDU.sys continúa después de deshabilitar el controlador

En casos raros, deshabilitar NDU.sys no resuelve la fuga porque otro componente vuelve a habilitar el controlador o un controlador diferente causa el mismo síntoma. Los siguientes escenarios cubren casos extremos.

NDU.sys aún muestra memoria alta después de deshabilitar DPS

Si detuviste DPS pero la memoria de NDU.sys no baja, el controlador puede estar retenido por una herramienta de monitoreo de red de terceros. Desinstala cualquier software de monitoreo de red de terceros como NetBalancer, GlassWire o Wireshark. Después de la eliminación, repite el Método 1 o el Método 3.

Windows Update vuelve a habilitar el controlador NDU

Una actualización acumulativa de Windows 11 puede restablecer el valor Inicio del controlador NDU a 1. Después de instalar una actualización de Windows, verifica la clave del registro en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDU. Si Inicio es 1, cámbialo de nuevo a 4 usando el Método 3 o el Método 4.

Perfmon muestra un controlador diferente con fuga de memoria

Si la fuga de memoria persiste pero Perfmon muestra un controlador diferente como WdiWiFi.sys o tcpip.sys, el problema no es NDU.sys. Ejecuta la herramienta Diagnóstico de memoria de Windows para verificar problemas de hardware. Presiona Win + R, escribe mdsched.exe y presiona Enter. Elige Reiniciar ahora y comprobar si hay problemas. Los errores de memoria pueden hacer que los controladores se comporten incorrectamente.

Requiere reinicio

No

Reversibilidad

Iniciar el servicio DPS nuevamente

Cambiar el valor Inicio de nuevo a 1

Impacto en otros diagnósticos

Deshabilita DPS y todos los servicios dependientes

Solo afecta al controlador NDU

Persistencia después de Windows Update

Puede ser re-habilitado por la actualización

Puede ser restablecido a 1 por la actualización

Elemento Método 1 Detener DPS Método 3 Deshabilitar NDU en el Registro
Efecto en NDU.sys Detiene la actividad del controlador inmediatamente Evita que el controlador se cargue al arrancar

Ahora puedes identificar la fuga de memoria de NDU.sys en Perfmon y detenerla usando el método que se adapte a tu entorno. Comienza con el Método 1 para una solución inmediata. Usa el Método 3 o el Método 4 para una solución permanente. Después de aplicar la solución, monitorea Perfmon durante 24 horas para confirmar que la memoria de grupo no paginada se mantenga por debajo de 50 MB. Si la fuga regresa, verifica si hay actualizaciones de Windows que puedan haber re-habilitado el controlador y aplica el cambio de registro nuevamente.

ADVERTISEMENT