Kaksi ajoa, yksi tunneli, ja luvut eroavat kolminkertaisesti. Tunneli ei muuttunut niiden välissä. Muuttui mittaus: testisivusto, joka valitsee palvelimen näennäisen sijaintisi perusteella, virtamäärä, joka ratkaisee täyttääkö putkea yksi hidas alku vai kuusi, ja kesto, joka on tarpeeksi lyhyt loppuakseen ennen kuin polkua edes aletaan käyttää kunnolla. Nopeustestit eivät ole väärässä, mutta ne vastaavat kapeampaan kysymykseen kuin se, jonka ihmiset niille esittävät.

Uusi ulostulo-osoite vaihtaa testin kohteen

Useimmat testisivustot valitsevat mittauspalvelimen automaattisesti, ja ne valitsevat sen osittain katsomalla, mistä yhteytesi näyttää tulevan. Kytke tunneli päälle, niin näennäinen maasi muuttuu, joten valittu palvelin muuttuu, ja vertailu kattaa nyt kaksi eri reittiä kahteen eri isäntään.

Tulos ei ole lainkaan VPN-mittaus. Se on mittaus polustasi palvelimeen, jota et valinnut, ja kahden ajon eroa voi hallita tuon palvelimen peering eikä mikään, mitä tunneli teki.

Kiinnitä kohde ennen kuin muutat mitään muuta. Jokainen uskottava työkalu antaa valita palvelimen nimenomaisesti, ja kun se ei anna, tulosivu yleensä nimeää käytetyn, mikä riittää huomaamaan, etteivät kaksi ajoa ole vertailukelpoisia. Varmista, mitä sivusto näki, ennen kuin luotat sen valintaan:

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

Jos maa muuttui ajojen välillä, kaikki mitä testi valitsi sen jälkeen, muuttui myös. Kirjoita havaittu ulostulo kunkin tuloksen viereen, niin sekaannus pitkälti häviää.

Hidas alku päättyy vasta useimpien lyhyiden testien päätyttyä

TCP-yhteys ei ala linkin nopeudella. Se alkaa pienellä ruuhkaikkunalla, kaksinkertaistaa sen suunnilleen joka edestakaisen matkan aikana ja saavuttaa polun kapasiteetin vasta useiden matkojen jälkeen. Kymmenen sekunnin testi korkean latenssin polulla voi viettää merkittävän osan elämästään siinä nousussa.

Siksi korkeamman latenssin tunneli saa lyhyessä testissä huonomman tuloksen kuin ansaitsisi, ja siksi pidempi ajo usein raportoi suuremman luvun ilman mitään asetusmuutosta. RFC 6349:n läpäisykehys käsittelee tämän nimenomaisesti, ja siksi vakavat mittaukset kestävät tarpeeksi kauan saavuttaakseen tasaisen tilan. Viiden sekunnin ajo satelliittipolulla mittaa kiihdytintä, ei tietä.

Katso yhteyden vaiheita sen sijaan että luotat yhteen lukuun. Curl raportoi jokaisen vaiheen erikseen, joten näet meneekö aika kättelyyn, nousuun vai siirtoon:

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

Aja se kahdesti peräkkäin samaan kohteeseen. Jos toinen ajo on paljon nopeampi, mittasit nousua etkä polkua, ja jokainen vertailu, joka käytti vain ensimmäistä ajoa, on epäilyttävä.

Yksi virta ja kuusi virtaa mittaavat eri asioita

Yksi TCP-virta rajoittuu ikkunaan, jonka se voi pitää lennossa, mikä on suunnilleen edestakainen aika kerrottuna nopeudella. Pitkällä polulla tuo tulo ylittää sen, mitä yksi virta käyttää, joten yksittäinen lataus aliraportoi olemassa olevan kapasiteetin. Kuusi rinnakkaista virtaa täyttää aukon ja tuottaa suuremman luvun.

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

Molemmat luvut ovat totta. Yhden virran luku kertoo, mitä yksi lataus tekee, minkä selaimen välilehti yleensä saa. Rinnakkainen luku kertoo, mitä polku voi kantaa yhteensä, mitä torrent tai osissa lataaminen voi käyttää. Toisen siteeraaminen ikään kuin se olisi toinen on tapa, jolla terve tunneli vaihdetaan ilman syytä.

Rinnakkaisen tuloksen vertaaminen yhden virran tulokseen on yleisin tapa, jolla ihmiset päättelevät VPN:n puolittaneen nopeutensa. Tasmaa menetelmä ja vertaa sitten. Kolmannen komennon jälki lisää puuttuvan kontekstin: korkean jitterin polku tuottaa epäjohdonmukaisia tuloksia molemmissa tiloissa, eikä mikään virtamäärä korjaa sitä.

Salaus maksaa prosessoriaikaa, kapselointi maksaa tavuja

Jokaisessa paketissa toimii kaksi mekanismia riippumatta siitä, kuinka nopea linkki on. Salaus kuluttaa prosessoria tavua kohden, ja kapselointi lisää otsikkotavuja, jotka linkin on silti kannettava. Molemmat näkyvät kattona, ja niillä on erilaiset oireet.

Prosessorin katto näkyy tasankona: läpäisy lakkaa kasvamasta riippumatta siitä, kuinka monta virtaa lisäät, ja koneen prosessori on kiireinen, kun linkki ei ole. Pienessä reitittimessä tai puhelimessa se on usein todellinen raja, ja siksi nopea linja voi silti tuottaa vaatimattoman tunnelin.

Tavukustannus on pienempi mutta vakio. Ylimääräiset otsikot tarkoittavat vähemmän hyötykuormaa pakettia kohden, ja polulla, jolla on kiinteä suurin siirtoyksikkö, ne voivat myös laukaista pirstoutumista tai mustan aukon, joka näkyy pysähdyksenä suurissa siirroissa eikä hitaana keskiarvona.

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

Nämä kolme sekoitetaan usein, koska käyttäjät kuvaavat niitä kaikkia sanoilla «VPN on hidas». Vain ensimmäinen vastaa suurempaan koneeseen, vain toinen vastaa pienempään MTU:hun ja vain kolmas vastaa jonojen hallintaan.

Kirjaa menetelmä muistiin

Säilyttämisen arvoinen tulos nimeää laitteen, käyttöverkon, ulostulon, mittauspalvelimen, suunnan, virtamäärän ja keston. Ilman niitä kahta lukua ei voi verrata, ja yhden luvun tiketti on oikeastaan mieliala.

Säilytä myös huonot ajot. Sarja, jossa yksi ulostulo aiheuttaa joka kerta pysähdyksen, on paljon informatiivisempi kuin keskiarvo, ja pysähdykset ovat juuri se, mitä keskiarvot piilottavat.

Testaa sitten sitä, mikä sinulle todella merkitsee. Jos tavoitteena on suuri lataus, lataa tiedosto. Jos tavoitteena on puhelu, mittaa latenssia kuormituksen alla äläkä joutokäynnin läpäisyä, koska tunneli voi pärjätä hyvin nopeustestissä ja tehdä silti jokaisesta kokouksesta kuuntelemattoman.

Aiheeseen liittyvät artikkelit