Un défaut audio et une pause VPN tombent dans les mêmes dix secondes, et un utilitaire signale un chiffre élevé étiqueté latence DPC. La tentation est de conclure que le pilote ralentit le tunnel, ou que le tunnel sollicite le pilote. Aucune des deux conclusions ne découle de ce chiffre.

Trois mesures sont en jeu ici, et elles ne partagent pas la même frontière.

Trois chiffres, trois frontières

Un appel de procédure différé est un travail qu'un pilote reporte depuis son gestionnaire d'interruptions, et le temps passé dans ces routines est une mesure locale au processeur attribuée à des modules et des fonctions. Un aller-retour d'écho est une observation de temps au niveau de la socket, produite par une pile réseau et un répondeur distant. Un événement de déconnexion est une transition d'état enregistrée par le client. Chacune répond à une question que les autres ne peuvent pas traiter, et des unités identiques ne les rendent pas interchangeables.

La discipline utile consiste à nommer la frontière avant de lire la valeur. Écrivez l'unité et la frontière côte à côte. Si un outil signale des millisecondes, demandez des millisecondes de quoi : temps à l'intérieur d'une routine, temps d'attente d'exécution, ou temps jusqu'à l'arrivée d'une réponse.

Un chiffre élevé dans une catégorie est une piste, jamais un diagnostic.

Lisez la définition derrière le titre

Les utilitaires diffèrent dans ce qu'ils appellent latence. Certains signalent la durée des routines du pilote, d'autres le retard d'ordonnancement, et les deux grandeurs peuvent évoluer en sens opposé sur la même machine. Un tableau de bord qui nomme l'une d'elles simplement latence DPC vous en a dit moins qu'il n'y paraît. Deux tableaux de bord peuvent donc être en désaccord au sujet d'une machine qui n'a pas changé du tout.

La même prudence s'applique au sein d'un seul outil d'analyse. La durée inclusive suit une routine de l'entrée à la sortie, tandis que la durée exclusive ne totalise que les fragments où cette routine s'exécutait elle-même. Choisir la mauvaise colonne transforme un appelant en coupable.

Le travail local du pilote et le délai réseau interagissent aussi sans se confondre. Une activité excessive liée aux interruptions peut retarder un travail sensible au temps sur la machine, et un chemin congestionné peut retarder des paquets, et les deux peuvent être vrais pendant une même pause visible.

Placez chaque observation dans une seule fenêtre

Une trace n'est utile que si vous lisez l'intervalle qui contient le symptôme. Enregistrez la trace, l'événement du client et la défaillance de l'application avec des horodatages, puis regardez les mêmes secondes dans les trois. Un maximum tiré d'une trace d'une heure et une déconnexion plus tard dans l'après-midi sont deux faits sans rapport.

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

Ouvrez ensuite la trace dans l'outil d'analyse et triez par durée à l'intérieur de cette fenêtre, plutôt que sur toute la capture. Le guide d'analyse du processeur décrit la vue de durée DPC/ISR qui attribue le temps aux modules et aux fonctions.

Confirmez ce qui est réellement arrivé au tunnel pendant que vous y êtes. Perdre brièvement le trafic de l'application ne signifie pas que le client a commencé une nouvelle négociation, et le succès d'une petite sonde ne prouve pas que tout le reste a continué de fonctionner.

Changez le composant que les preuves désignent

Un module occupé est un endroit où enquêter, pas un verdict. Il effectue peut-être un travail causé par un autre composant, ou par la charge que vous avez générée. Gardez ensemble le nom du module, l'appareil, la version du pilote et l'intervalle observé, car cet ensemble est ce sur quoi un fournisseur peut agir.

Un changement par expérience est le seul moyen d'apprendre du résultat. Une comparaison filaire resserre le périmètre, mais elle modifie en même temps le chemin radio et l'activité du pilote, alors traitez-la comme un indice et non comme une preuve.

Traitez la trace comme sensible. Elle peut contenir des noms de processus et des détails d'environnement, elle appartient donc au canal de capture pris en charge et non à une pièce jointe publique. Dites à quelle observation la trace devait répondre.

Articles similaires