Два прагоны, адзін тунель, а лічбы адрозніваюцца ў тры разы. Тунель паміж імі не змяніўся. Змянілася вымярэнне: тэставы сайт, які выбірае сервер па вашым бачным месцазнаходжанні, колькасць патокаў, якая вырашае, адзін павольны старт ці шэсць запаўняюць трубу, і працягласць, дастаткова кароткая, каб скончыцца раней, чым шлях пачне выкарыстоўвацца належным чынам. Тэсты хуткасці не памыляюцца, проста яны адказваюць на больш вузкае пытанне, чым тое, якое ім задаюць.

Новы адрас выхаду змяняе прызначэнне тэсту

Большасць тэставых сайтаў выбіраюць сервер вымярэння аўтаматычна і робяць гэта часткова з угляду на тое, адкуль быццам бы ідзе ваша злучэнне. Уключыце тунель — ваша бачная краіна змяняецца, значыць, змяняецца і абраны сервер, і параўнанне цяпер ахоплівае два розныя маршруты да двух розных хастоў.

Вынік зусім не вымярэнне 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 скараціў хуткасць удвая. Узгадніце метад, потым параўноўвайце. След у трэцяй камандзе дадае бракуючы кантэкст: шлях з вялікім дрыжаннем дасць няўстойлівыя вынікі ў абодвух рэжымах, і ніякая колькасць патокаў гэтага не выправіць.

Шыфраванне каштуе часу працэсара, інкапсуляцыя каштуе байтаў

Два механізмы працуюць на кожным пакеце незалежна ад хуткасці канала. Шыфраванне спажывае працэсар на байт, а інкапсуляцыя дадае байты загалоўка, якія канал усё яшчэ мусіць перанесці. Абодва выглядаюць як столь, і сімптомы ў іх розныя.

Столь працэсара выглядае як плато: прапускная здольнасць перастае расці, колькі б патокаў вы ні дадалі, і працэсар машыны заняты, а канал не. На невялікім роўтары ці тэлефоне гэта часта і ёсць сапраўдная мяжа, і таму хуткая лінія можа даць сціплы тунель.

Кошт байтаў меншы, але пастаянны. Дадатковыя загалоўкі азначаюць менш карыснай нагрузкі на пакет, а на шляху з фіксаванай максімальнай адзінкай перадачы яны могуць таксама выклікаць фрагментацыю ці чорную дзіру, што выглядае як застой на вялікіх перадачах, а не як павольны сярэдні паказчык.

ObservationLikely mechanismWhat to measure
Throughput flat as streams increaseCPU per packet on one corePer-core utilisation during the test
Fast small transfers, stalled large onesMTU and fragmentationPayload size at which it breaks
Good average, unusable callsQueueing delay behind a full bufferLatency under load

Гэтыя тры часта блытаюць, бо карыстальнікі апісваюць іх усе як «VPN тармазіць». Толькі першае рэагуе на большую машыну, толькі другое рэагуе на меншую MTU, і толькі трэцяе рэагуе на кіраванне чэргамі.

Запішыце метад у пратакол

Вынік, варты захавання, называе прыладу, сетку доступу, выхад, сервер вымярэння, кірунак, колькасць патокаў і працягласць. Без гэтага дзве лічбы непараўнальныя, а заяўка з адной лічбай — гэта насамрэч настрой.

Захоўвайце і дрэнныя прагоны. Серыя, дзе адзін выхад кожны раз дае застой, значна інфарматыўнейшая за сярэдняе, і застоі — гэта менавіта тое, што сярэднія хаваюць.

Потым праверце тое, што вам сапраўды важна. Калі мэта — вялікае спампоўванне, спампуйце файл. Калі мэта — званок, вымярайце затрымку пад нагрузкай, а не прапускную здольнасць у прастоі, бо тунель можа добра выступіць у тэсце хуткасці і ўсё ж зрабіць кожную сустрэчу неслухабельнай.

Падобныя артыкулы