Un fallo de audio y una pausa de la VPN caen en los mismos diez segundos, y una utilidad informa de una cifra alta etiquetada como latencia DPC. La tentación es concluir que el controlador está frenando el túnel, o que el túnel está estresando el controlador. Ninguna de las dos conclusiones se desprende de esa cifra.

Aquí intervienen tres mediciones, y no comparten la misma frontera.

Tres cifras, tres fronteras

Una llamada de procedimiento diferida es trabajo que un controlador pospone desde su manejador de interrupciones, y el tiempo pasado dentro de esas rutinas es una medición local del procesador atribuida a módulos y funciones. Un viaje de ida y vuelta de eco es una observación de tiempo en el socket, producida por una pila de red y un respondedor remoto. Un evento de desconexión es una transición de estado registrada por el cliente. Cada una responde a una pregunta que las otras no pueden, y las unidades coincidentes no las hacen intercambiables.

La disciplina útil es nombrar la frontera antes de leer el valor. Escriba la unidad y la frontera una junto a la otra. Si una herramienta informa de milisegundos, pregunte milisegundos de qué: tiempo dentro de una rutina, tiempo esperando para ejecutarse o tiempo hasta que llegó una respuesta.

Una cifra alta en una categoría es una pista, nunca un diagnóstico.

Lea la definición detrás del titular

Las utilidades difieren en lo que llaman latencia. Algunas informan de la duración de las rutinas del controlador, otras informan del retraso de planificación, y ambas cantidades pueden moverse en direcciones opuestas en la misma máquina. Un panel que llama a una de ellas simplemente latencia DPC le ha dicho menos de lo que parece. Por eso dos paneles pueden discrepar sobre una máquina que no ha cambiado en absoluto.

La misma precaución se aplica dentro de una sola herramienta de análisis. La duración inclusiva sigue una rutina desde la entrada hasta la salida, mientras que la duración exclusiva solo suma los fragmentos en los que esa rutina estaba ejecutando. Elegir la columna equivocada convierte a un llamador en culpable.

El trabajo local del controlador y el retraso de red también interactúan sin fusionarse. Una actividad excesiva relacionada con interrupciones puede retrasar trabajo sensible al tiempo en la máquina, y una ruta congestionada puede retrasar paquetes, y ambas cosas pueden ser ciertas durante una misma pausa visible.

Ponga cada observación en una sola ventana

Una traza solo es útil si se lee el intervalo que contiene el síntoma. Registre la traza, el evento del cliente y el fallo de la aplicación con marcas de tiempo, y luego mire los mismos segundos en los tres. Un máximo de una traza de una hora y una desconexión más tarde esa tarde son dos hechos no relacionados.

wpr -start CPU -filemode
wpr -stop vpn-trace.etl
xperf -i vpn-trace.etl -a dpcisr -o dpc.txt

Después abra la traza en la herramienta de análisis y ordene por duración dentro de esa ventana, en lugar de por toda la captura. La guía de análisis de CPU describe la vista de duración DPC/ISR que atribuye tiempo a módulos y funciones.

Confirme qué ocurrió realmente con el túnel mientras esté allí. Perder brevemente el tráfico de la aplicación no significa que el cliente iniciara una negociación nueva, y el éxito de una sonda pequeña no demuestra que todo lo demás siguiera funcionando.

Cambie el componente que señalan las pruebas

Un módulo ocupado es un lugar donde investigar, no un veredicto. Puede estar haciendo trabajo causado por otro componente o por la carga que usted generó. Mantenga juntos el nombre del módulo, el dispositivo, la versión del controlador y el intervalo observado, porque ese conjunto es lo que un proveedor puede usar.

Un cambio por experimento es la única forma de aprender del resultado. Una comparación por cable estrecha el alcance, pero cambia la ruta de radio y la actividad del controlador al mismo tiempo, así que trátela como una pista y no como una prueba.

Trate la traza como sensible. Puede contener nombres de procesos y detalles del entorno, así que pertenece al canal de captura admitido y no a un archivo adjunto público. Diga qué observación debía responder la traza.

Artículos relacionados