Як правяраць хуткасць VPN, каб лічбы нешта значылі
Замацуйце тэставы сервер, трымайце ніжні пласт нерухомым і чытайце затрымку асобна ад прапускной здольнасці. Тунель змяняе шлях раней, чым нешта вымераць.
Тэст хуткасці ніколі не мерае VPN. Ён мерае шлях, і ўключэнне тунеля замяняе частку гэтага шляху да таго, як зрушыцца першы байт. Таму адзін ноўтбук паказвае добрую лічбу на адным сайце і дрэнную на другім, хаця ні з аднаго боку нічога не змянілася. Чытайце вынік як доказ пра маршрут, а не як адзнаку прадукту.
Тры рэчы вызначаюць, ці вартае параўнанне чаго-небудзь: ці трапілі абодва прагоны ў адну мэту, ці засталася сетка доступу нерухомай і ці запісалі вы затрымку разам з аб’ёмам.
Што тунель перапісвае да першага байта
Кліент заварочвае кожны пакет у яшчэ адзін загаловак, таму карысная нагрузка на пакет памяншаецца. Кошт разлічваецца на пакет, а не на перадачу, гэта значыць вялікі файл патрабуе больш пакетаў, чым той самы файл без тунеля. Такія накладныя выдаткі бачныя як колькасць пакетаў, а не як наладка ў інтэрфейсе.
З гэтага вынікаюць два следствы. Тэст з буйных блокаў адчувае кошт кожнага пакета, а тэст з мноства дробных запытаў адчувае замест гэтага кругавыя паездкі. І калі выяўленне MTU шляху заблакаванае дзесьці па дарозе, тунель спыняецца на драбнейшым памеры пакета, і прапускная здольнасць падае з прычыны, якая не мае нічога агульнага з шыфрамі.
Стеляй можна назіраць напрамую. У Linux запытайце найбольшую нагрузку, якая праходзіць без фрагментацыі, затым паўтарыце з уключаным тунелем:
ping -M do -s 1472 -c 3 203.0.113.10
Калі гэта не ўдалося, спусціцеся да 1,400 і паспрабуйце зноў. Тунель, які нясе толькі 1,380 байтаў, кажа вам, што нешта сціскае яшчэ мацней далей па шляху, і ніякая наладка на кліенце гэта не падыме.
Чаму тэставы сервер пераязджае, калі ўключаецца тунель
Большасць прылад выбірае блізкі сервер па публічным адрасе, які яны бачаць. З уключаным тунелем гэты адрас належыць вузлу выхаду, таму прылада можа выбраць хост у іншым горадзе ці краіне. Тады вы параўноўваеце дзве мэты, і разрыў паміж імі ўключае адлегласць ад выхаду да тэставага хоста.
Замацуйце сервер па імені або ID да першага прагону і трымайце яго ў кожным наступным. Калі прылада не ўтрымлівае яго, выберыце мэту, якую кантралюеце, і кіруйце ёй самі: iperf3 -c test.example.net -R -t 20 трымае прызначэнне нерухомым і дае лічбу, якую можна параўнаць з учорашняй.
Змяніце адну зменную, а ніжні пласт не адна зменная
Бесправоднае злучэнне звычайна хавае змену. Моц сігналу зрушваецца, калі ноўтбук рухаецца, а занятасць канала калі сусед пачынае размову, таму два прагоны з розніцай у дзесяць хвілін на Wi-Fi не з’яўляюцца паўторам аднаго тэсту. Дрот або нерухомая пазіцыя з запісаным узроўнем сігналу прыбірае большую частку гэтага шуму. Запіс узроўню сігналу на пачатку і ў канцы кожнага прагону звычайна дастатковы, каб паказаць, ці належаць два прагоны разам.
Нагрузка прылады адносіцца да таго ж кошыка. Кліент, які шыфруе на адным ядры, дасягае ўласнай столі задоўга да злучэння, а фонавая сінхранізацыя яшчэ хутчэй. Назірайце за CPU падчас прагону і адзначце, што яшчэ было адкрыта. Налады сілкавання таксама могуць кусаць, бо ноўтбук на батарэі можа абмежаваць працэсар задоўга да таго, як злучэнне наблізіцца да занятасці.
| Measurement | What it answers | What it misses |
|---|---|---|
| Download | Bulk capacity along the path | Any question about responsiveness |
| Upload | Capacity from client to exit | Download health |
| RTT to a fixed target | Distance plus queueing | Whether capacity is available |
| Jitter or loss | Stability under load | How much the link can carry |
Трымайце ніжні пласт нерухомым, а не усярэдніце па ім. Тры прагоны, якія згаджаюцца, кажуць больш за дзесяць, зробленых у розных пакоях.
Затрымка, страты і ICMP адказваюць на розныя пытанні
Ping пасылае маленькі зонд на фіксаваны адрас, і шматлікія сеткі адказваюць на ICMP з нізкім прыярытэтам або цалкам ігнаруюць яго. Адсутныя адказы апісваюць зонд, а не пакеты праграмы. Час кругавога шляху, які расце пад нагрузкай, звычайна азначае, што чарга запаўняецца, а не што маршрут стаў даўжэйшым.
Каб даведацца, ці дадае тунель затрымку, параўнайце адну мэту з ім і без яго або параўнайце два выхады, дасяжныя з адной сеткі доступу. Запускайце зонд неаднаразова і глядзіце на разкід, бо сярэдняе хавае менавіта тую зменлівасць, якая робіць размову немагчымай.
Вярніцеся да задачы, якая здавалася павольнай
Мерка, якая паляпшаецца, пакуль размова ўсё яшчэ перарываецца адказала на нешта іншае. Паўтарыце задачу, з якой пачалося расследаванне, будзь то сустрэча, абагулены файл ці сеанс аддаленага працоўнага стала. Калі лічба палепшылася, а задача не, вузкае месца было там, куды тэст не дайшоў, напрыклад сервер за тунелем або ваш уваходны канал.
Запісвайце кожны прагон з прыладай, сеткай доступу, канчатковай кропкай, пратаколам, мэтай і часам. Прагон, які так і не злучыўся, гэта вынік дасяжнасці, а не нулявая прапускная здольнасць, таму падшывайце яго пад гэтую этыкетку, а не выдаляйце.
Кароткі спіс перад наступным параўнаннем
Закмацуйце мэту і запішыце, чаму вы яе выбралі. Запішыце памер пакета, які дазваляе шлях, каб пазнейшае падзенне мела тлумачэнне. Трымайце сетку доступу аднолькавай, адзначайце нагрузку CPU і зрабіце тры прагоны, перш чым паверыць розніцы.
Затым змяніце роўна адну рэч і паўтарыце. Параўнанне, якое вы можаце растлумачыць, лепшае за тое, дзе лічба большая.