Високата 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 што времето го припишува на модули и функции.
Потврдете што всушност се случило со тунелот додека сте таму. Краткото губење на сообраќајот на апликацијата не значи дека клиентот започнал ново преговарање, а успехот на мала проба не докажува дека сѐ друго продолжило да работи.
Сменете ја компонентата што ја посочуваат доказите
Зафатен модул е место за истрага, а не пресуда. Можеби извршува работа предизвикана од друга компонента или од оптоварувањето што вие сте го создале. Држете ги заедно името на модулот, уредот, верзијата на драјверот и набљудуваниот интервал, бидејќи токму тој сет е она на што добавувачот може да дејствува.
Една промена по експеримент е единствениот начин да се учи од резултатот. Жичената споредба го стеснува опсегот, но таа истовремено ја менува радиопатеката и активноста на драјверот, затоа третирајте ја како трага, а не како доказ.
Третирајте ја трагата како чувствителна. Таа може да содржи имиња на процеси и детали за околината, затоа ѝ е местото во поддржаниот канал за снимање, а не во јавен прилог. Кажете на кое набљудување требало да одговори трагата.