ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Diagnóstico de picos de latencia DPC, chasquidos de audio y microtirones causados por controladores

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

Introducción: El misterio de los microtirones y los chasquidos de audio

Una de las experiencias más frustrantes en el juego en PC moderno ocurre cuando un equipo dotado de hardware de gama alta ofrece tasas medias de fotogramas superiores a los 240 FPS y, sin embargo, adolece de continuos microtirones (micro-stuttering), irregularidad en el seguimiento del ratón y molestos chasquidos o estallidos de audio (audio popping / crackling). A pesar de que los gráficos se configuren al mínimo, las caídas bruscas en el percentil del 1% bajo (1% Low) arruinan la fluidez.

Las interfaces de monitorización habituales (como contadores de FPS, gráficas de uso de GPU o sensores de temperatura de la CPU) son incapaces de registrar el origen del problema. La limitación no proviene de una falta de potencia de cálculo ni de estrangulamiento térmico (thermal throttling), sino de la arquitectura de gestión de interrupciones del núcleo de Windows: los picos de latencia en las Llamadas a Procedimiento Diferido (DPC) y en las Rutinas de Servicio de Interrupción (ISR). Cuando un controlador monopoliza un núcleo del procesador en un nivel de privilegio elevado, el programador del sistema operativo se ve obligado a pausar la ejecución de las tareas en modo usuario, provocando el desabastecimiento tanto del bucle de renderizado del juego como del búfer de audio.

Arquitectura del núcleo de Windows: ISR, DPC y jerarquía IRQL

Para comprender cómo un controlador provoca tirones, es necesario analizar el funcionamiento de los Niveles de Solicitud de Interrupción (IRQL, Interrupt Request Level) del núcleo NT de Windows, que abarcan desde PASSIVE_LEVEL (IRQL 0) hasta HIGH_LEVEL:

  1. Hilos de usuario y lógica del juego (PASSIVE_LEVEL, IRQL 0): El bucle de dibujo del juego, los cálculos físicos, la captura de periféricos y la alimentación de búferes de audio DirectSound o WASAPI operan en esta prioridad estándar.
  2. Llamadas a Procedimiento Diferido (DISPATCH_LEVEL, IRQL 2): Aquí se ejecutan el despachador de hilos del núcleo y el procesamiento diferido de controladores. Mientras un procesador ejecuta rutinas en DISPATCH_LEVEL, los hilos de modo usuario quedan totalmente suspendidos.
  3. Rutinas de Servicio de Interrupción (DIRQL del dispositivo): Cuando una tarjeta de red, un SSD NVMe o una tarjeta gráfica generan una señal física de interrupción, la CPU suspende de inmediato la tarea en curso y ejecuta la ISR del controlador.

1. El modelo de interrupciones en dos fases

Con objeto de mantener la agilidad del sistema, Windows divide la gestión en dos etapas:

2. Bloqueo de programación y vaciado de búfer (Buffer Underrun)

Al ejecutarse en IRQL 2, una DPC en curso no puede ser interrumpida por el planificador para dar paso al hilo del juego. Si un controlador mal programado, una transición de ahorro energético deficiente o un conflicto de bus prolonga una DPC durante 1 a 3 milisegundos (1.000 a 3.000 µs), el núcleo del procesador queda secuestrado:

Metodología de análisis: Interpretación de informes de LatencyMon

La utilidad de referencia para aislar irregularidades en DPC e ISR es LatencyMon (de Resplendence). Al someter el equipo a la carga habitual de un juego, conviene evaluar tres parámetros esenciales:

  1. Tiempo máximo de ejecución de rutina DPC (Highest reported DPC routine execution time): En un sistema equilibrado debe permanecer por debajo de 500 µs. Registros persistentes por encima de 1.000 µs (1,0 ms) evidencian una sobrecarga inaceptable para tareas en tiempo real.
  2. Tiempo máximo de ejecución de rutina ISR (Highest reported ISR routine execution time): Debe mantenerse estrictamente bajo los 100 µs. Valores elevados denotan conflictos en el enrutamiento de líneas de interrupción o anomalías de hardware en la placa base.
  3. Módulos con mayor tiempo acumulado (pestaña Drivers): Presenta la lista de controladores clasificados por tiempo de procesamiento. Identificar el ejecutable superior permite aislar el componente responsable.

Principales controladores causantes de picos

Archivo de controladorComponente o subsistemaOrigen habitual del pico de latencia
nvlddmkm.sysGráficos NVIDIASaltos dinámicos entre estados P-State, latencia de reactivación PCIe ASPM, contención de audio HDMI/DP
amdkmdag.sysGráficos AMD RadeonTransiciones de reloj en reposo, estado de ultrabajo consumo (ULPS), consultas de FreeSync
ndis.sys / tcpip.sysPila de red NDISModo Energy Efficient Ethernet (EEE), sondeos en segundo plano de Wi-Fi, moderación de interrupciones
storport.sys / stornvme.sysControlador de almacenamiento NVMeEstados autónomos de energía (APST), retardo en la salida del modo de suspensión del SSD
wdf01000.sysMarco de controladores WindowsRatones con polling rate extremo (4K/8K), sondeos continuos de suites de iluminación RGB
ACPI.sysGestión de energía de placaSuspensión de núcleos (Core Parking), fluctuaciones entre estados C-State profundos (C6/C7)

Estrategias sistemáticas de optimización

La resolución de problemas de latencia DPC exige erradicar los conflictos de interrupción y desactivar transiciones energéticas excesivamente conservadoras.

1. Activación de Interrupciones Señalizadas por Mensaje (Modo MSI)

Los dispositivos antiguos utilizaban interrupciones tradicionales basadas en líneas físicas (Line-Based IRQ), donde varios periféricos compartían una misma vía de interrupción física (como IRQ 16 compartida por la GPU, el audio integrado y la controladora USB). Al dispararse la interrupción, la CPU debía consultar secuencialmente a cada controlador, disparando la cola de procesamiento DPC.

Los dispositivos PCIe admiten Interrupciones Señalizadas por Mensaje (MSI / MSI-X), enviando paquetes directamente a la memoria RAM del sistema sin compartir líneas físicas:

2. Ajuste del modo de energía de la GPU y desactivación de PCIe ASPM

Las tarjetas gráficas actuales reducen drásticamente su frecuencia de reloj al pasar por escenas ligeras (pantallas de carga, menús o vestíbulos de emparejamiento), situándose en estados de bajo consumo (P5 o P8). Al desencadenarse una acción frenética en el juego, el lapso necesario para volver al rendimiento máximo (P0) eleva el tiempo de nvlddmkm.sys, provocando microtirones:

3. Optimización del adaptador de red

Las anomalías en ndis.sys y tcpip.sys suelen guardar relación con los modos de ahorro energético de las controladoras integradas:

4. Desactivación de salidas de audio secundarias y software en segundo plano

La duplicidad de dispositivos de audio es una fuente continua de fricciones DPC:

Matriz de diagnóstico de problemas DPC

Síntoma observadoMódulo crítico en LatencyMonCausa de fondoSolución inmediata aconsejada
Chasquidos de sonido al entrar en partidanvlddmkm.sysFluctuación de estados P-State de GPU y ASPMFijar "Preferir rendimiento máximo" en NVIDIA y desactivar estado de vínculos PCIe en energía
Tirones rítmicos durante partidas onlinendis.sys / tcpip.sysAhorro EEE en Ethernet o barrido Wi-FiDesactivar Energy Efficient Ethernet y poner agresividad de itinerancia Wi-Fi al mínimo
Crujidos ocasionales al mover el ratónwdf01000.sysTasa de sondeo desmedida o servicios RGBConectar DAC a puerto USB directo a CPU y cerrar programas de control de periféricos
Congelaciones periódicas cada 10-15 segundosstorport.sysModos APST de ahorro en unidades NVMeMarcar apagado de disco en "Nunca" en Windows y actualizar firmware/driver de la controladora
Distorsión acústica general tras inactividadACPI.sysSuspensión de núcleos y C-States profundosSeleccionar plan de Alto Rendimiento y deshabilitar C-States en la BIOS de ser necesario

Script de comprobación del modo MSI en PowerShell

Ejecute la siguiente instrucción en una consola de PowerShell con privilegios de administrador para inspeccionar si sus adaptadores clave (GPU, red y almacenamiento) operan en modo MSI o bajo interrupciones compartidas tradicionales:

  # Comprobación de configuración MSI en adaptadores de vídeo, red y almacenamiento
  Get-PnpDevice -Class "Display", "Net", "SCSIAdapter" | ForEach-Object {
      $device = $_
      $instanceId = $device.InstanceId
      $msiPath = "HKLM:\SYSTEM\CurrentControlSet\Enum\$instanceId\Device Parameters\Interrupt Management\MessageSignaledInterruptProperties"
      
      $isMsi = $false
      if (Test-Path $msiPath) {
          $val = Get-ItemProperty -Path $msiPath -Name "MSISupported" -ErrorAction SilentlyContinue
          if ($val.MSISupported -eq 1) { $isMsi = $true }
      }
      
      [PSCustomObject]@{
          Dispositivo = $device.FriendlyName
          Clase       = $device.Class
          ModoMSI     = if ($isMsi) { "Habilitado (MSI)" } else { "Línea Compartida (Pin)" }
          Estado      = $device.Status
      }
  } | Format-Table -AutoSize

Si algún adaptador crítico figura como "Línea Compartida (Pin)" y genera saturación en LatencyMon, su paso a "Habilitado (MSI)" eliminará cuellos de botella en el enrutamiento de interrupciones.

Buenas prácticas para mantener la estabilidad del sistema

  1. Efectuar mediciones bajo carga real: Examinar LatencyMon con el sistema en reposo carece de utilidad. Ejecute la prueba mientras un juego exigente o un benchmark se ejecuta en segundo plano para forzar la alternancia de frecuencias y el tráfico masivo de E/S.
  2. Garantizar instalaciones limpias con DDU: Al actualizar controladores gráficos, recurra periódicamente a Display Driver Uninstaller (DDU) en Modo Seguro de Windows para purgar claves de registro residuales que lastran el rendimiento de nvlddmkm.sys.
  3. Aislar la topología física de puertos USB: Conecte interfaces de sonido de baja latencia a los puertos USB traseros comunicados directamente con el procesador, evitando concentradores frontales compartidos con teclados, ratones o cámaras web.
  4. Respaldarse en documentación técnica contrastada: La latencia en Windows es fruto del equilibrio entre hardware, firmware y controladores del kernel. El seguimiento de repositorios especializados como 365Finds proporciona las claves arquitectónicas necesarias para erradicar las fuentes de latencia en el sistema operativo y preservar una experiencia de juego limpia, reactiva y libre de irregularidades.

Referencias