Как да тествате скоростта на 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 и направете три пуска, преди да повярвате на разлика.
После сменете точно едно нещо и повторете. Сравнението, което можете да обясните, бие това с по-голямото число.