როგორ წავიკითხოთ პაკეტის დაკარგვა სანამ კაბელს დავადანაშაულებთ
დაკარგვის მცირე ციფრი მაინც შეიძლება მალავდეს აპლიკაციის ხანგრძლივ გაჩერებას. სანამ აპარატურას შეცვლით, შეადარეთ მრიცხველების სხვაობები, ხელახალი გაგზავნის ქცევა და რეალური დავალება.
ორი პროცენტი დაკარგვა ხანგრძლივი ping-ის განმავლობაში ციფრად გვეჩვენება, რომლის მიხედვითაც შეიძლება მოქმედება, და იშვიათად ასეა. ის არ ამბობს სად დაიკარგა პასუხები, ერთად დაიკარგნენ თუ არა, ან როგორ განიცადა კონკრეტულმა აპლიკაციამ ეს ინტერვალი. ერთ წუთზე თანაბრად განაწილებული დაკარგვა და ერთ გაცვლაში დაგროვილი დაკარგვა ერთი და იმავე პროცენტისთვის ძალიან განსხვავებულ შედეგებს იძლევა.
ერთის ნდობის ნაცვლად შეადარეთ სამი გაზომვა: რა დაინახა ზონდმა, რა გააკეთეს ინტერფეისის მრიცხველებმა და რას ელოდა აპლიკაცია რეალურად.
რას ზომავს ping-ის პროცენტი სინამდვილეში
ექოს ზონდი ამოწმებს ერთი პროტოკოლის ერთ მიმართულებას ერთი პაკეტის ზომით, თქვენ მიერ არჩეული ნებისმიერი სიჩქარით. გვირაბი, რომელიც დიდ ატვირთვას ატარებს, სულ სხვა რამეს აკეთებს, და ბმული, რომელიც პატარა ზონდებს ყრის, სულაც არ არის ის ბმული, რომელიც გადაცემას აზიანებს. პროცენტი ასევე ამსხვრევს დროის ყველაზე მნიშვნელოვან ინფორმაციას, რადგან ერთ აფეთქებაში დაკარგული ათი პასუხი არ არის იგივე, რაც ერთი საათის ინტერვალით დაკარგული ათი პასუხი. მას ასევე არ შეუძლია გითხრათ, გვირაბის რომელმა მხარემ დაყარა რამე.
შეინახეთ ზონდის შედეგი გზის შესახებ მინიშნებად. შემდეგ მოძებნეთ დრო და საზღვარი, რომლებმაც ის შექმნეს.
შეადარეთ მრიცხველების სხვაობები, და არა სიცოცხლის ჯამები
აიღეთ დროის ნიშანდებული ჩვენებები იმ ფანჯრამდე და მის შემდეგ, რომელშიც სიმპტომი გამოჩნდა, ორივე ბოლოში და თქვენ მიერ კონტროლირებულ ნებისმიერ კომუტატორის პორტში. ჩაწერეთ ტრაფიკის მოცულობა შეცდომებთან, გადაგდებებთან და ბმულის მდგომარეობის ცვლილებებთან ერთად, რადგან თვეების განმავლობაში დაგროვილი არანულოვანი ჯამი ისტორიას აღწერს და არა ამ შემთხვევას. მრიცხველი, რომელიც გაჩერების დროს სამით გადაადგილდა, სხვა დაკვირვებაა, ვიდრე მრიცხველი, რომელიც სამ ათასს აჩვენებს და არასოდეს შეცვლილა.
ip -s link show dev eth0
nstat -az TcpRetransSegs TcpExtTCPTimeouts
date -u +%Y-%m-%dT%H:%M:%SZ
მიღების შეცდომების გამო გადაგდებული პაკეტები და სხვა მიზეზებით გადაგდებული პაკეტები ცალკე მრიცხველებში ცხოვრობენ, და ეს განსხვავება გასაგრძელებელ ნაბიჯებს ცვლის. შეცდომების მრიცხველები ფიზიკურ ან დრაივერის შრეზე მიუთითებენ, ხოლო რიგის წნევა და პოლიტიკის გადაგდებები მის ზემოთ სადღაც მიუთითებენ. შეინახეთ ასევე მიმართულება და ინტერფეისის სახელი, რადგან აღმავალ ბმულზე მიღების შეცდომების ზრდა და გვირაბის პაკეტების მრიცხველი ურთიერთშემცვლელები არ არიან.
თუ დრაივერი დეტალურ ფიზიკურ მრიცხველებს აჩვენებს, წაიკითხეთ ისინი ამ ადაპტერის დოკუმენტაციით. ორ მწარმოებელთან “drop” სახელის მქონე ყველა ველს ერთი მნიშვნელობის მიცემა ის გზაა, რომლითაც ჩვეულებრივი სააღრიცხვო უცნაურობა აპარატურულ დიაგნოზად იქცევა.
როგორ იქცევა დაკარგული სეგმენტი ხანგრძლივ ლოდინად
აპლიკაციას შეუძლია სეგმენტის დაკარგვის შემდეგ ერთ ორმხრივ მოგზაურობაზე გაცილებით დიდხანს დაელოდოს. TCP აფასებს ორმხრივ დროს, ამ შეფასებიდან ხელახალი გაგზავნის ტაიმერს ითვლის და უკან იხევს, როცა ხელახალი გაგზავნაც ვერ ხერხდება, ამიტომ არასწორ მომენტში დაკარგული ერთი სეგმენტი შეიძლება მოთხოვნა შესამჩნევი ინტერვალით გააჩეროს. ეს მექანიზმი განსაზღვრულია RFC 6298-ში, და განმარტავს, თუ რატომ შეიძლება ტრივიალურად მოჩვენებადი დაკარგვის მაჩვენებელი მაინც იგრძნობოდეს.
თუმცა ყოველი პაუზა ხელახალი გაგზავნის ვადის გასვლა არ არის. იგივე ლოდინი შეიძლება მოვიდეს სახელების გარჩევისგან, ნელი სერვერისგან ან აპლიკაციისგან, რომელიც მარცხის შემდეგ თავის მოთხოვნას ხელახლა ცდის. გამოყავით ეს შემთხვევები წარუმატებელი ოპერაციის ტრანსპორტის დაკვირვებებთან და თავად გვირაბის სესიის მოვლენებთან გასწორებით. მონაცემთა გზაზე შეწყვეტა ხელახალი დაკავშირების გარეშე სხვა მოვლენაა, ვიდრე ახალი ხელის ჩამორთმევა და სერტიფიკატების გაცვლა.
სადაც ჩაწერა დაშვებულია, ვიწროდ შეინახეთ. თქვენ გჭირდებათ იცოდეთ შეჩერდება თუ არა მოსალოდნელი პაკეტები ან დადასტურებები კონკრეტულ საზღვარზე, და არა ის ფაქტი, რომ სადღაც დატვირთულ კვალში ხელახალი გაგზავნა არსებობს.
შეცვალეთ ერთი საზღვარი სხვების გადაადგილების გარეშე
თუ მტკიცებულებები ლოკალურ ბმულზე მიუთითებს, შეცვალეთ დამტკიცებული კაბელი ან პორტი კონტროლირებად შედარებად და დანარჩენი უცვლელად დატოვეთ. შეინახეთ ბოლო წერტილი, აპლიკაცია და დატვირთვა შედარებადი და ყოველ ცდაზე ზუსტად ერთი საზღვარი შეცვალეთ. მავთულიანი ლეპტოპის უმავთულოსთან შედარება, როცა ამავდროულად გასასვლელებსა და პროტოკოლებსაც ცვლით, არაფერს გეუბნებათ, რაც შეიძლება მივაწეროთ.
სუფთა ლოკალური მრიცხველები გზის დანარჩენ ნაწილს არ ადასტურებენ. ისინი ზღუდავენ იმ ნაწილს, რომელსაც ხედავთ, და პატიოსანი ანგარიში ამბობს, რომელი საზღვრები დაფიქსირდა და რომელი არა. ბოლოს გსურთ განცხადება, რომ ერთი ჩარევის დროს ერთი დაკვირვება შეიცვალა, და არა ცუდი კაბელის შესახებ ანეკდოტი, საყოველთაო წესად ამაღლებული.