თქვენი ჩამოტვირთვა სწრაფია, მაშინ რატომ ჩანს ყოველი დაწკაპუნება ნელი?
დიდი გადაცემა შეიძლება სრული სიჩქარით წავიდეს, სანამ ზარები და დაწკაპუნებები ჩამორჩება. გაზომეთ ორმხრივი დრო, მდგრადი სიჩქარე და დატვირთვის ქვეშ დაყოვნება სამ ცალკე კითხვად.
დიდი ფაილის სწრაფად ჩამოტვირთვა და შემდეგ ყოველი დაწკაპუნების ნელად შეგრძნება წინააღმდეგობა არ არის. ტევადობა ამბობს, რამდენს შეუძლია გადაადგილება წამში; ორმხრივი დრო ამბობს, რამდენ ხანს გრძელდება გაცვლა, სანამ რაიმე სასარგებლო მოხდება. პირველის გაუმჯობესება არაფერს აკეთებს მეორესთვის, და მეორეა ის, რასაც ადამიანი ამჩნევს აკრეფის, დაწკაპუნების ან საუბრის დროს. გაზომეთ ჩივილი და არა კავშირი.
სწრაფი ფაილი, ნელი დაწკაპუნება: ორი განსხვავებული რიცხვი
მასობრივი გადაცემა მონაცემებს განუწყვეტლივ მოძრაობაში ინახავს, ამიტომ მას შეუძლია ჯანსაღი სიჩქარე შეატყობინოს მაშინაც, როცა ყოველი ცალკეული მოთხოვნა ელოდება. ბევრი ბენჩმარკი რამდენიმე კავშირს ერთდროულად ხსნის, რაც ზრდის საერთო ციფრს, სანამ ერთი მოთხოვნა ნელი რჩება. ორივე შედეგი თავსებადია, და მაღალი ციფრის მიჩვენება მომხმარებელს, რომელიც დაყოვნებაზე ჩივის, ნდობის დაკარგვის გზაა.
გვერდის ჩატვირთვა პატარა გაცვლების ჯაჭვია: სახელების ამოხსნა, კავშირის დამყარება, მოთხოვნა, პასუხი და შემდეგ დამოკიდებული მოთხოვნები. ყოველი ნაბიჯი კვლავ იხდის ორმხრივ დროს, ამიტომ მაღალი დაყოვნების გზა ნელი ჩანს მაშინაც, როცა ბევრი ტევადობა აქვს.
გვირაბი ამატებს თავის მოგზაურობას და დამუშავებას, და მარშრუტი უფრო მნიშვნელოვანია, ვიდრე რუკაზე არსებული იარლიყი. ერთი ქვეყნის ორ გასასვლელს ერთ ხვედრილამდე ძალიან განსხვავებული გზები შეიძლება ჰქონდეს. ოცი მილიწამი სხვაობა საკმარისია გვერდის შეგრძნების შესაცვლელად, თუმცა გამტარუნარიანობის ციფრს ძლივს ამოძრავებს. ამიტომ გასასვლელის არჩევა უნდა მიჰყვეს დაყოვნების ნიმუშს და არა დროშის ხატულას.
გაზომეთ ჩივილი და არა კავშირი
აირჩიეთ ის გაზომვა, რომელიც ერგება მომხმარებლის ნათქვამ წინადადებას. ნელი ჩამოტვირთვას სჭირდება მდგრადი სიჩქარე სწორი მიმართულებით; დაყოვნებულ ზარს სჭირდება იმ აპლიკაციის საკუთარი სტატისტიკა; ნელა მწყები გვერდს სჭირდება ამოხსნისა და დამყარების დროები.
ping -c 20 10.60.0.5
curl -sS -o /dev/null -w 'ttfb=%{time_starttransfer} rate=%{speed_download}\n' https://files.plant.example/1gb.bin
iperf3 -c 10.60.0.5 -t 10 -P 4პირველი ბრძანება იძლევა ორმხრივი დროის ნიმუშს ჰოსტამდე, რომელიც წინასწარ განსაზღვრულად პასუხობს, მეორე იტყობინება პირველ ბაიტამდე დროსა და ერთი კავშირის მდგრად სიჩქარეს, ხოლო მესამე ზომავს საერთო გამტარუნარიანობას ოთხი პარალელური ნაკადით. გაუშვით ისინი ერთსა და იმავე დანიშნულების წინააღმდეგ დღის იმავე დროს, რადგან დილის ნიმუშის საღამოს ნიმუშთან შედარება ზღაპარს ქმნის და არა გაზომვას.
გასასვლელების შედარებისას დანიშნულება ფიქსირებული შეინახეთ. სერვერისა და გვირაბის ერთდროულად შეცვლა ერთ ცვლადს ორად აქცევს, და შედეგი ვერ გეტყვით, რომელი იყო მნიშვნელოვანი. გაუშვით ყოველი გასასვლელი სულ ცოტა სამჯერ, რადგან ერთი ნიმუში ხშირად მარშრუტის ცვლილებაში ან ხმაურიან წუთში ხვდება. მედიანა უფრო სასარგებლოა, ვიდრე საუკეთესო შემთხვევა.
ICMP-ს მოეკიდეთ როგორც მინიშნებას და არა პასუხს. პასუხისმგებელ ჰოსტს შეუძლია ექოს მოთხოვნები სხვა გზით დაამუშაოს, ვიდრე ის, რომელსაც თქვენი აპლიკაცია იყენებს, და ერთი დაკარგული პასუხი არ არის მტკიცებულება, რომ ყოველი აპლიკაცია პაკეტებს კარგავს.
დატვირთვის ქვეშ დაყოვნება რიგის პრობლემაა
ყველაზე დამაბნეველი ნიმუშია კავშირი, რომელიც უმოქმედოდ კარგად ჩანს და სარეზერვო ასლის დროს უსარგებლოა. ეს რიგია და არა ტევადობა. გაჯერებული ატვირთვის არხი ყოველი სხვა პაკეტის წინ ბუფერს აშენებს, ამიტომ კლავიშის დაჭერა ატვირთვის ნაწილის უკან ელოდება.
ping -c 20 10.60.0.5 & iperf3 -c 10.60.0.5 -t 20 -R -b 20M
პირველი ბრძანება ფონზე იღებს დაყოვნების ნიმუშებს, სანამ მეორე საწინააღმდეგო მიმართულებას აჯერებს. თუ ping-ის დროები გადაცემის დროს ხტება და შემდეგ უბრუნდება, თქვენ გაამრავლეთ bufferbloat და არა აღმოაჩინეთ მარშრუტიზაციის ხარვეზი. გამოსწორება ჩვეულებრივ რიგის მართვის პარამეტრია, დაბალი ფონური სიჩქარე, ან მასობრივი გადაცემის ინტერაქტიული გზიდან მოშორება.
სურვილობრივი ფონური ტრაფიკის შემცირება ხშირად მეტს ეხმარება, ვიდრე გასასვლელი ქვეყნის შეცვლა. ის ასევე იაფია, შექცევადი და ერთ წუთში შესამოწმებელი. დაგეგმეთ დიდი ატვირთვები სამუშაო საათების გარეთ, თუ რიგის მართვა შეუძლებელია, და შეზღუდეთ მათი სიჩქარე, თუ დღისით უნდა იმუშაონ. როცა როუტერი მხარს უჭერს, რიგის მართვის პარამეტრი უკეთესი გამოსწორებაა.
შეცვალეთ ერთი რამ და შეადარეთ მსგავსი მსგავსს
მაღალი უმოქმედო დაყოვნებისთვის შეადარეთ გასასვლელები დანიშნულების ფიქსირებულად შენახვით, შემდეგ შეადარეთ მარშრუტები საუკეთესო კანდიდატისთვის. დაბალი მდგრადი გამტარუნარიანობისთვის შეხედეთ ტევადობას, სერვერის დატვირთვას და კლიენტის დამუშავებას, რადგან ეს სხვადასხვა ზღვარია.
ჩაწერეთ, რა გაზომეთ, რომელი დანიშნულების წინააღმდეგ, რა დროს და რომელი პარამეტრებით. ამ ოთხი ფაქტის გარეშე შედარება ვერ განმეორდება, და შემდეგი ადამიანი ნულიდან დაიწყებს.
შემდეგ შეუსაბამეთ ხელსაწყო ბილეთში არსებულ მტკიცებას. "ნელი ინტერნეტი" გაზომვა არ არის; "პირველმა ბაიტმა 900 ms დასჭირდა ამ ჰოსტამდე, სანამ გამტარუნარიანობა კარგი იყო" გაზომვაა, და ის პირდაპირ დაყოვნებაზე მიუთითებს და არა ტევადობაზე.