DPC-нің жоғары кідірісі VPN жолының баяулығын білдірмейді
Драйвер уақыты, эхолық барыс-келістер және сессия оқиғалары бір-бірін кінәлайды. Компонентті ауыстырмас бұрын әрбір санауыш нені өлшейтінін оқыңыз.
Дыбыс ақауы мен VPN үзілісі бірдей он секундқа түседі, ал бір утилита DPC кідірісі деп таңбаланған жоғары санды хабарлайды. Драйвер туннельді баяулатады немесе туннель драйверге жүктеме салады деп қорытынды жасауға итермелейді. Бұл саннан екі қорытындының ешқайсысы шықпайды.
Мұнда үш өлшеу бар және олар бір шекараны бөліспейді.
Үш сан, үш шекара
Кейінге қалдырылған процедура шақыруы — драйвер өзінің үзіліс өңдеушісінен кейінге қалдыратын жұмыс, ал сол процедуралардың ішінде өткен уақыт модульдер мен функцияларға телінетін процессорлық жергілікті өлшеу болып табылады. Эхолық барыс-келіс — сокеттегі уақыт бақылауы, оны желілік стек пен қашықтағы жауап беруші жасайды. Ажырау оқиғасы — клиент тіркейтін күй ауысуы. Әрқайсысы басқалары жауап бере алмайтын сұраққа жауап береді, ал бірдей бірліктер оларды бір-бірінің орнына қолдануға жарамды етпейді.
Пайдалы тәртіп — мәнді оқымас бұрын шекараны атау. Бірлік пен шекараны қатар жазыңыз. Егер құрал миллисекундтарды хабарласа, ненің миллисекундтары екенін сұраңыз: процедура ішіндегі уақыт па, орындалуды күту уақыты ма, әлде жауап келгенге дейінгі уақыт па.
Бір санаттағы жоғары сан — белгі, ешқашан диагноз емес.
Тақырыптың артындағы анықтаманы оқыңыз
Утилиталар кідіріс деп нені атайтынында ерекшеленеді. Кейбіреуі драйвер процедураларының ұзақтығын, басқалары жоспарлау кідірісін хабарлайды, және бұл екі шама бір машинада қарама-қарсы бағытта қозғалуы мүмкін. Олардың бірін жай ғана DPC кідірісі деп атайтын тақта сізге көрінгеннен аз айтты. Сондықтан екі тақта мүлдем өзгермеген машина туралы келіспеуі мүмкін.
Дәл осындай сақтық бір талдау құралының ішінде де қолданылады. Қамтитын ұзақтық процедураны кіруден шығуға дейін бақылайды, ал алып тастайтын ұзақтық тек сол процедураның өзі орындалған үзінділерді қосады. Дұрыс емес бағанды таңдау шақырушыны кінәліге айналдырады.
Жергілікті драйвер жұмысы мен желілік кідіріс те бірікпей-ақ өзара әсер етеді. Үзілістерге байланысты шамадан тыс белсенділік машинадағы уақытқа сезімтал жұмысты кідіртуі мүмкін, ал тығындалған жол пакеттерді кідіртуі мүмкін, және бір көрінетін үзіліс кезінде екеуі де рас болуы мүмкін.
Әр бақылауды бір терезеге салыңыз
Із тек симптомды қамтитын аралықты оқығанда ғана пайдалы. Ізді, клиент оқиғасын және қолданбаның істен шығуын уақыт таңбаларымен жазып алыңыз, содан кейін үшеуінде де сол секундтарға қараңыз. Бір сағаттық іздің максимумы мен сол түстен кейінгі ажырау — екі байланыссыз факт.
wpr -start CPU -filemode
wpr -stop vpn-trace.etl
xperf -i vpn-trace.etl -a dpcisr -o dpc.txt
Содан кейін ізді талдау құралында ашып, бүкіл жазба бойынша емес, сол терезе ішіндегі ұзақтық бойынша сұрыптаңыз. CPU талдауының нұсқаулығы уақытты модульдер мен функцияларға телейтін DPC/ISR ұзақтық көрінісін сипаттайды.
Туннельге шын мәнінде не болғанын растаңыз, сіз сонда болған кезде. Қолданба трафигінің қысқа уақыт жоғалуы клиенттің жаңа келіссөз бастағанын білдірмейді, ал кішкене сынақтың сәттілігі қалғанның бәрі жұмысын жалғастырғанын дәлелдемейді.
Дәлелдер көрсеткен компонентті ауыстырыңыз
Бос емес модуль — тергеу орны, үкім емес. Ол басқа компонент немесе сіз жасаған жүктеме тудырған жұмысты орындап жатқан болуы мүмкін. Модуль атауын, құрылғыны, драйвер нұсқасын және байқалған аралықты бірге ұстаңыз, өйткені жеткізуші дәл осы жиынтық бойынша әрекет ете алады.
Әр тәжірибеге бір өзгеріс — нәтижеден үйренудің жалғыз жолы. Сымды салыстыру ауқымды тарылтады, бірақ ол бір мезгілде радиожолды және драйвер белсенділігін өзгертеді, сондықтан оны дәлел емес, белгі ретінде қарастырыңыз.
Ізге құпия дерек ретінде қараңыз. Онда процесс атаулары мен орта егжей-тегжейлері болуы мүмкін, сондықтан оның орны қолдау көрсетілетін жазу арнасы, ал ашық тіркеме емес. Із қай бақылауға жауап беруі тиіс болғанын айтыңыз.