Dva pokretanja, jedan tunel, a brojevi se razlikuju tri puta. Tunel se između njih nije promijenio. Promijenilo se mjerenje: testna stranica koja bira server prema vašoj prividnoj lokaciji, broj streamova koji odlučuje da li jedan spor početak ili šest njih pune cijev, i trajanje dovoljno kratko da završi prije nego što se put uopće počne pravilno koristiti. Testovi brzine nisu pogrešni, ali oni odgovaraju na uže pitanje od onoga koje im ljudi postavljaju.

Nova adresa izlaza mijenja odredište testa

Većina testnih stranica automatski bira mjerni server i bira ga dijelom gledajući odakle izgleda da dolazi vaša veza. Uključite tunel i vaša se prividna zemlja mijenja, pa se odabrani server mijenja, a poređenje sada obuhvata dva različita puta do dva različita hosta.

Rezultat uopće nije mjerenje VPN-a. To je mjerenje vašeg puta do servera koji niste odabrali, a razlikom između dva pokretanja može dominirati peering tog servera, a ne bilo što što je tunel uradio.

Fiksirajte odredište prije nego što promijenite bilo što drugo. Svaki pouzdan alat dopušta da eksplicitno odaberete server, a kad ne dopušta, stranica s rezultatima obično navede korišteni, što je dovoljno da primijetite da dva pokretanja nisu uporediva. Potvrdite što je stranica vidjela prije nego što povjerujete njenom izboru:

curl -sS https://ipinfo.io/json | grep -E '"ip"|"org"|"country"'

Ako se zemlja promijenila između pokretanja, promijenilo se i sve što je test odabrao nakon toga. Zapišite uočeni izlaz uz svaki rezultat i zabuna uglavnom nestaje.

Spor početak završava nakon što većina kratkih testova završi

TCP veza ne počinje brzinom veze. Počinje s malim prozorom zagušenja, udvostručuje ga otprilike svaki krug i dostiže kapacitet puta tek nakon nekoliko krugova. Test od deset sekundi na putu s visokom latencijom može provesti znatan dio života u tom usponu.

Zato tunel s više latencije na kratkom testu prolazi lošije nego što zaslužuje, i zato duže pokretanje često prijavljuje veći broj bez ikakve promjene konfiguracije. RFC 6349 okvir propusnosti to izričito tretira, zato ozbiljna mjerenja traju dovoljno dugo da dosegnu stabilno stanje. Pokretanje od pet sekundi na satelitskom putu mjeri ubrzivač, a ne cestu.

Gledajte faze veze umjesto da vjerujete jednom broju. Curl prijavljuje svaku fazu zasebno, pa možete vidjeti ide li vrijeme u rukovanje, uspon ili prijenos:

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

Pokrenite ga dvaput zaredom na isto odredište. Ako je drugo pokretanje mnogo brže, mjerili ste uspon, a ne put, i svako poređenje koje je koristilo samo prvo pokretanje je sumnjivo.

Jedan stream i šest streamova mjere različite stvari

Jedan TCP stream ograničen je prozorom koji može držati u letu, a to je otprilike vrijeme kruga pomnoženo s brzinom. Na dugom putu taj proizvod premašuje ono što će jedan stream iskoristiti, pa jedno preuzimanje podcjenjuje postojeći kapacitet. Šest paralelnih streamova popunjava prazninu i daje veći broj.

iperf3 -c speed.example.net -t 20
iperf3 -c speed.example.net -t 20 -P 6
mtr -rwc 50 speed.example.net

Oba broja su istinita. Broj za jedan stream govori što će učiniti jedno preuzimanje, što obično dobije kartica preglednika. Paralelni broj govori što put može nositi ukupno, što može iskoristiti torrent ili preuzimanje u dijelovima. Citirati jedno kao da je drugo jest način na koji se zdrav tunel zamjenjuje bez razloga.

Poređenje paralelnog rezultata s rezultatom jednog streama najčešći je način na koji ljudi zaključe da im je VPN prepolovio brzinu. Uskladite metodu, pa uporedite. Trag u trećoj naredbi dodaje kontekst koji nedostaje: put s visokim jitterom dat će nedosljedne rezultate u oba načina, i nikakav broj streamova to ne ispravlja.

Enkripcija stoji procesorsko vrijeme, inkapsulacija stoji bajtove

Dva mehanizma rade na svakom paketu bez obzira na brzinu veze. Enkripcija troši procesor po bajtu, a inkapsulacija dodaje bajtove zaglavlja koje veza ipak mora nositi. Oba se pojavljuju kao plafon i imaju različite simptome.

Procesorski plafon izgleda kao plato: propusnost prestaje rasti koliko god streamova dodali, a procesor mašine je zauzet dok veza nije. Na malom ruteru ili telefonu to je često prava granica, i zato brza linija ipak može dati skroman tunel.

Cijena u bajtovima manja je ali stalna. Dodatna zaglavlja znače manje korisnog tereta po paketu, a na putu s fiksnom maksimalnom jedinicom prijenosa mogu potaknuti i fragmentaciju ili crnu rupu koja se pojavljuje kao zastoj kod velikih prijenosa, a ne kao spora prosječna vrijednost.

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

Ova tri se često miješaju jer ih korisnici sva opisuju kao «VPN je spor». Samo prvi reagira na veću mašinu, samo drugi reagira na manji MTU, a samo treći reagira na upravljanje redovima.

Stavite metodu u zapis

Rezultat vrijedan čuvanja imenuje uređaj, pristupnu mrežu, izlaz, mjerni server, smjer, broj streamova i trajanje. Bez toga se dva broja ne mogu uporediti, a tiket koji sadrži jedan broj zapravo je raspoloženje.

Čuvajte i loša pokretanja. Serija u kojoj jedan izlaz svaki put proizvede zastoj daleko je informativnija od prosjeka, a zastoji su upravo ono što prosjeci skrivaju.

Zatim testirajte ono što vas stvarno zanima. Ako je cilj veliko preuzimanje, preuzmite datoteku. Ako je cilj poziv, mjerite latenciju pod opterećenjem, a ne propusnost u mirovanju, jer tunel može dobro proći na testu brzine i ipak svaki sastanak učiniti neslušljivim.

Povezani članci