ხმოვანი ხარვეზი და 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 ხანგრძლივობის ხედს, რომელიც დროს მოდულებსა და ფუნქციებს მიაკუთვნებს.

დაადასტურეთ, რა მოუვიდა გვირაბს სინამდვილეში, სანამ იქ ხართ. აპლიკაციის ტრაფიკის ხანმოკლე დაკარგვა არ ნიშნავს, რომ კლიენტმა ახალი მოლაპარაკება დაიწყო, და პატარა ცდის წარმატება არ ამტკიცებს, რომ დანარჩენი ყველაფერი განაგრძობდა მუშაობას.

შეცვალეთ ის კომპონენტი, რომელსაც მტკიცებულებები ასახელებს

დაკავებული მოდული გამოძიების ადგილია და არა განაჩენი. შესაძლოა ის ასრულებს სამუშაოს, რომელიც სხვა კომპონენტმა ან თქვენ მიერ შექმნილმა დატვირთვამ გამოიწვია. მოდულის სახელი, მოწყობილობა, დრაივერის ვერსია და დაკვირვებული ინტერვალი ერთად შეინახეთ, რადგან სწორედ ეს ნაკრებია, რაზეც მომწოდებელს შეუძლია იმოქმედოს.

ექსპერიმენტზე ერთი ცვლილება ერთადერთი გზაა შედეგიდან სასწავლებლად. სადენიანი შედარება ავიწროებს არეალს, მაგრამ ის ერთდროულად ცვლის რადიოგზას და დრაივერის აქტივობას, ამიტომ მას ნაფიქრალად მოეკიდეთ და არა მტკიცებულებად.

კვალს მგრძნობიარე მონაცემად მოეკიდეთ. ის შეიძლება შეიცავდეს პროცესების სახელებსა და გარემოს დეტალებს, ამიტომ მისი ადგილი მხარდაჭერილ ჩაწერის არხშია და არა საჯარო დანართში. თქვით, რომელ დაკვირვებას უნდა გაეცა პასუხი კვალს.

დაკავშირებული სტატიები