Високото закъснение на DPC не означава бавен VPN път
Времето на драйвера, ехо-обиколките и събитията на сесията се обвиняват взаимно. Прочетете какво измерва всеки брояч, преди да смените компонент.
Аудио дефект и пауза на VPN се случват в същите десет секунди, а помощна програма съобщава висока стойност с етикет закъснение на DPC. Изкушението е да заключим, че драйверът забавя тунела или че тунелът натоварва драйвера. Нито едно от двете заключения не следва от това число.
Тук участват три измервания и те не споделят една и съща граница.
Три числа, три граници
Отложеното извикване на процедура е работа, която драйверът отлага от своя обработчик на прекъсвания, а времето, прекарано в тези процедури, е измерване, локално за процесора, приписано на модули и функции. Ехо-обиколката е наблюдение на времето при сокета, създадено от мрежов стек и отдалечен ответник. Събитието на прекъсване на връзката е преход на състояние, записан от клиента. Всяко отговаря на въпрос, на който останалите не могат, а съвпадащите единици не ги правят взаимозаменяеми.
Полезната дисциплина е да назовете границата, преди да прочетете стойността. Запишете единицата и границата една до друга. Ако инструмент съобщава милисекунди, попитайте милисекунди на какво: време в процедура, време на чакане за изпълнение или време до пристигане на отговор.
Високото число в една категория е следа, никога диагноза.
Прочетете определението зад заглавието
Помощните програми се различават по това какво наричат закъснение. Някои съобщават продължителността на процедурите на драйвера, други — закъснението при планиране, и двете величини могат да се движат в противоположни посоки на една и съща машина. Табло, което нарича едно от тях просто закъснение на DPC, ви е казало по-малко, отколкото изглежда. Затова две табла могат да не са съгласни за машина, която изобщо не се е променила.
Същото внимание важи и в един инструмент за анализ. Включващата продължителност проследява процедура от входа до изхода, докато изключващата сумира само фрагментите, в които самата процедура е изпълнявала. Изборът на грешната колона превръща извикващия в виновник.
Локалната работа на драйвера и мрежовото закъснение също взаимодействат, без да се сливат. Прекомерната активност, свързана с прекъсвания, може да забави чувствителна на време работа на машината, а задръстеният път може да забави пакети, и двете могат да са верни по време на една видима пауза.
Поставете всяко наблюдение в един прозорец
Проследяването е полезно само ако прочетете интервала, който съдържа симптома. Запишете проследяването, събитието на клиента и отказа на приложението с времеви маркери, после погледнете същите секунди и в трите. Максимум от едночасово проследяване и прекъсване по-късно същия следобед са два несвързани факта.
wpr -start CPU -filemode
wpr -stop vpn-trace.etl
xperf -i vpn-trace.etl -a dpcisr -o dpc.txt
След това отворете проследяването в инструмента за анализ и сортирайте по продължителност в този прозорец, а не по целия запис. указания за анализ на процесора описва изгледа на продължителност на DPC/ISR, който приписва време на модули и функции.
Потвърдете какво всъщност се случи с тунела, докато сте там. Кратката загуба на трафик на приложението не означава, че клиентът е започнал ново договаряне, а успешната малка проба не доказва, че всичко останало е продължило да работи.
Сменете компонента, който доказателствата сочат
Заетият модул е място за разследване, а не присъда. Възможно е да върши работа, причинена от друг компонент или от натоварването, което вие сте създали. Пазете заедно името на модула, устройството, версията на драйвера и наблюдавания интервал, защото точно този набор доставчикът може да използва.
Една промяна на експеримент е единственият начин да се учим от резултата. Кабелното сравнение стеснява обхвата, но променя радиопътя и активността на драйвера едновременно, затова го третирайте като следа, а не като доказателство.
Отнасяйте се към проследяването като към чувствителни данни. То може да съдържа имена на процеси и подробности за средата, затова мястото му е в поддържания канал за запис, а не в публично прикачен файл. Кажете на кое наблюдение е трябвало да отговори проследяването.