რატომ არ ემთხვევა VPN-ის ორი სიჩქარის ტესტი ერთსა და იმავე გვირაბზე
ახალი გასასვლელი ტესტის სერვერს ცვლის, ნელი დაწყება კი შედეგს. დააფიქსირეთ დანიშნულება, გაასწორეთ ნაკადების რაოდენობა და გამოყავით პროცესორის ხარჯი არხის სიმძლავრისგან.
ორი გაშვება, ერთი გვირაბი და რიცხვები სამჯერ განსხვავდება. გვირაბი მათ შორის არ შეცვლილა. შეიცვალა გაზომვა: ტესტის საიტი, რომელიც სერვერს თქვენი ხილული მდებარეობის მიხედვით ირჩევს, ნაკადების რაოდენობა, რომელიც წყვეტს ერთი ნელი დაწყება ავსებს მილს თუ ექვსი, და ისეთი ხანგრძლივობა, რომ მოკლეა დასრულდეს მანამ, სანამ ბილიკი სწორად გამოიყენება. სიჩქარის ტესტები არ არის არასწორი, მაგრამ ისინი პასუხობენ უფრო ვიწრო კითხვას, ვიდრე ის, რომელსაც ხალხი მათ უსვამს.
ახალი გასასვლელი მისამართი ცვლის ტესტის დანიშნულებას
ტესტის საიტების უმეტესობა საზომ სერვერს ავტომატურად ირჩევს და ნაწილობრივ იმის მიხედვით ირჩევს, საიდან თუ ჩანს, რომ თქვენი კავშირი მოდის. ჩართეთ გვირაბი და თქვენი ხილული ქვეყანა იცვლება, ამიტომ არჩეული სერვერი იცვლება, და შედარება ახლა ორ სხვადასხვა მარშრუტს მოიცავს ორ სხვადასხვა ჰოსტამდე.
შედეგი სულაც არ არის VPN-ის გაზომვა. ეს თქვენი ბილიკის გაზომვაა სერვერამდე, რომელიც არ აგირჩევიათ, და ორ გაშვებას შორის სხვაობა შეიძლება განისაზღვროს ამ სერვერის პირინგით და არა იმით, რაც გვირაბმა გააკეთა.
დააფიქსირეთ დანიშნულება სანამ სხვა რამეს შეცვლით. ყველა სანდო ინსტრუმენტი საშუალებას გაძლევთ სერვერი ცალსახად აირჩიოთ, და როცა არ აძლევს, შედეგების გვერდი ჩვეულებრივ ასახელებს გამოყენებულს, რაც საკმარისია იმის შესამჩნევად, რომ ორი გაშვება შედარებადი არ არის. დაადასტურეთ რა დაინახა საიტმა, სანამ მის არჩევანს ენდობით:
curl -sS https://ipinfo.io/json | grep -E '"ip"|"org"|"country"'
თუ ქვეყანა გაშვებებს შორის შეიცვალა, შეიცვალა ყველაფერი, რაც ტესტმა ამის შემდეგ აირჩია. ჩაწერეთ დაკვირვებული გასასვლელი ყოველი შედეგის გვერდით და დაბნეულობა უმეტესად ქრება.
ნელი დაწყება მოკლე ტესტების უმეტესობის დასრულების შემდეგ მთავრდება
TCP კავშირი არხის სიჩქარით არ იწყება. ის იწყება პატარა გადატვირთვის ფანჯრით, დაახლოებით ყოველ ორმხრივ მგზავრობაზე აორმაგებს მას, და ბილიკის სიმძლავრეს მხოლოდ რამდენიმე მგზავრობის შემდეგ აღწევს. მაღალი დაყოვნების ბილიკზე ათწამიან ტესტს შეუძლია სიცოცხლის მნიშვნელოვანი ნაწილი ამ აღმართში გაატაროს.
ამიტომ უფრო მაღალი დაყოვნების გვირაბი მოკლე ტესტში უფრო ცუდად ფასდება, ვიდრე იმსახურებს, და ამიტომ უფრო ხანგრძლივი გაშვება ხშირად უფრო მაღალ რიცხვს იუწყება ყოველგვარი კონფიგურაციის ცვლილების გარეშე. RFC 6349 გამტარუნარიანობის ჩარჩო ამას ცალსახად განიხილავს, და ამიტომ სერიოზული გაზომვები საკმარისად დიდხანს გრძელდება სტაბილურ მდგომარეობამდე მისასვლელად. თანამგზავრულ ბილიკზე ხუთწამიანი გაშვება აჩქარებელს ზომავს და არა გზას.
შეხედეთ კავშირის ფაზებს და ნუ დაეყრდნობით ერთ რიცხვს. Curl ყოველ ეტაპს ცალკე იუწყება, ასე რომ ხედავთ დრო ხელის ჩამორთმევაში მიდის, აღმართში თუ გადაცემაში:
curl -sS -o /dev/null -w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} total=%{time_total} bytes/s=%{speed_download}\n' \
https://mirror.example.net/testfile.bin
გაუშვით ის ორჯერ ზედიზედ იმავე დანიშნულებაზე. თუ მეორე გაშვება ბევრად სწრაფია, აღმართს ზომავდით და არა ბილიკს, და ყოველი შედარება, რომელმაც მხოლოდ პირველი გამოიყენა, საეჭვოა.
ერთი ნაკადი და ექვსი ნაკადი სხვადასხვა რამეს ზომავს
ერთი TCP ნაკადი შემოიფარგლება ფანჯრით, რომელსაც ფრენაში ინახავს, და ეს დაახლოებით ორმხრივი მგზავრობის დრო გამრავლებული სიჩქარეზეა. გრძელ ბილიკზე ეს ნამრავლი აღემატება იმას, რასაც ერთი ნაკადი გამოიყენებს, ამიტომ ერთი ჩამოტვირთვა არსებულ სიმძლავრეს ნაკლებად აჩვენებს. ექვსი პარალელური ნაკადი ავსებს ამ ნაპრალს და უფრო დიდ რიცხვს იძლევა.
iperf3 -c speed.example.net -t 20
iperf3 -c speed.example.net -t 20 -P 6
mtr -rwc 50 speed.example.net
ორივე რიცხვი მართალია. ერთი ნაკადის რიცხვი ამბობს რას გააკეთებს ერთი ჩამოტვირთვა, რასაც ჩვეულებრივ ბრაუზერის ჩანართი იღებს. პარალელური რიცხვი ამბობს რისი ტარება შეუძლია ბილიკს მთლიანად, რასაც ტორენტი ან მრავალნაწილიანი ჩამოტვირთვა გამოიყენებს. ერთის მეორის ადგილას ციტირება სწორედ ის გზაა, რომლითაც ჯანსაღი გვირაბი უმიზეზოდ იცვლება.
პარალელური შედეგის ერთი ნაკადის შედეგთან შედარება ყველაზე გავრცელებული გზაა, რომლითაც ხალხი ასკვნის, რომ VPN-მა მათი სიჩქარე გაანახევრა. გაასწორეთ მეთოდი, შემდეგ შეადარეთ. მესამე ბრძანების კვალი ამატებს დაკარგულ კონტექსტს: მაღალი ჯიტერის ბილიკი ორივე რეჟიმში არათანმიმდევრულ შედეგებს მოგცემთ, და ნაკადების არც ერთი რაოდენობა არ ასწორებს ამას.
დაშიფვრა პროცესორის დრო ღირს, ინკაფსულაცია კი ბაიტები
თითოეულ პაკეტზე ორი მექანიზმი მუშაობს, მიუხედავად იმისა, რამდენად სწრაფია არხი. დაშიფვრა პროცესორს მოიხმარს ბაიტზე, და ინკაფსულაცია ამატებს სათაურის ბაიტებს, რომლებიც არხმა მაინც უნდა ატაროს. ორივე ჭერად ჩანს, და მათი სიმპტომები განსხვავებულია.
პროცესორის ჭერი პლატოსავით ჩანს: გამტარუნარიანობა წყვეტს ზრდას, რამდენი ნაკადიც არ უნდა დაამატოთ, და მანქანის პროცესორი დაკავებულია, მაშინ როცა არხი არ არის. პატარა როუტერზე ან ტელეფონზე ეს ხშირად ნამდვილი ზღვარია, და ამიტომ სწრაფ ხაზს მაინც შეუძლია მოკრძალებული გვირაბი მოგცეს.
ბაიტური ხარჯი უფრო მცირეა, მაგრამ მუდმივი. დამატებითი სათაურები ნიშნავს ნაკლებ სასარგებლო დატვირთვას პაკეტზე, და ფიქსირებული მაქსიმალური გადაცემის ერთეულის მქონე ბილიკზე მათ შეუძლიათ გამოიწვიონ ფრაგმენტაცია ან შავი ხვრელი, რომელიც დიდ გადაცემებში გაჩერებად ჩანს და არა ნელი საშუალოდ.
| Observation | Likely mechanism | What to measure |
|---|---|---|
| Throughput flat as streams increase | CPU per packet on one core | Per-core utilisation during the test |
| Fast small transfers, stalled large ones | MTU and fragmentation | Payload size at which it breaks |
| Good average, unusable calls | Queueing delay behind a full buffer | Latency under load |
ეს სამი ხშირად ერევათ, რადგან მომხმარებლები ყველას აღწერენ როგორც «VPN ნელია». მხოლოდ პირველი რეაგირებს უფრო დიდ მანქანაზე, მხოლოდ მეორე უფრო პატარა MTU-ზე, და მხოლოდ მესამე რიგების მართვაზე.
ჩაწერეთ მეთოდი ოქმში
შესანახად ღირებული შედეგი ასახელებს მოწყობილობას, წვდომის ქსელს, გასასვლელს, საზომ სერვერს, მიმართულებას, ნაკადების რაოდენობას და ხანგრძლივობას. მათ გარეშე ორი რიცხვის შედარება შეუძლებელია, და ერთ რიცხვიანი ბილეთი სინამდვილეში განწყობაა.
შეინახეთ ცუდი გაშვებებიც. სერია, სადაც ერთი გასასვლელი ყოველ ჯერზე გაჩერებას იწვევს, გაცილებით უფრო ინფორმაციულია, ვიდრე საშუალო, და გაჩერებები სწორედ ისაა, რასაც საშუალოები მალავს.
შემდეგ გამოსცადეთ ის, რაც ნამდვილად გაწუხებთ. თუ მიზანი დიდი ჩამოტვირთვაა, ჩამოტვირთეთ ფაილი. თუ მიზანი ზარია, გაზომეთ დაყოვნება დატვირთვის ქვეშ და არა უმოქმედო გამტარუნარიანობა, რადგან გვირაბმა შეიძლება სიჩქარის ტესტში კარგი ქულა მიიღოს და მაინც ყოველი შეხვედრა ყრუდ აქციოს.