Waarom twee VPN-spoedtoetse op dieselfde tonnel verskil
'n Nuwe uitgang verander die toetsbediener, en 'n stadige begin verander die telling. Pen die bestemming vas, pas stroomtalle aan en skei prosessorkoste van skakelkapasiteit.
Twee lopies, een tonnel, en die syfers verskil met 'n faktor van drie. Die tonnel het nie tussen hulle verander nie. Wat verander het, is die meting: 'n toetsterrein wat 'n bediener kies op grond van jou oënskynlike ligging, 'n stroomtal wat bepaal of een stadige begin of ses die pyp vul, en 'n duur wat kort genoeg is om te eindig voordat die pad behoorlik gebruik word. Spoedtoetse is nie verkeerd nie, maar hulle beantwoord 'n smaller vraag as die een wat mense aan hulle stel.
'n Nuwe uitgangsadres verander die toetsbestemming
Die meeste toetsterreine kies outomaties 'n meetbediener, en hulle kies hom deels deur te kyk waar jou verbinding skynbaar vandaan kom. Skakel die tonnel aan en jou oënskynlike land verander, so die gekose bediener verander, en die vergelyking strek nou oor twee verskillende roetes na twee verskillende gashere.
Die resultaat is glad nie 'n VPN-meting nie. Dit is 'n meting van jou pad na 'n bediener wat jy nie gekies het nie, en die verskil tussen die twee lopies kan oorheers word deur daardie bediener se peering eerder as deur enigiets wat die tonnel gedoen het.
Maak die bestemming vas voordat jy iets anders verander. Elke geloofwaardige hulpmiddel laat jou 'n bediener eksplisiet kies, en wanneer dit dit nie doen nie, noem die resultaatblad gewoonlik die een wat dit gebruik het, wat genoeg is om te sien dat die twee lopies nie vergelykbaar is nie. Bevestig wat die terrein gesien het voordat jy die keuse wat dit gemaak het vertrou:
curl -sS https://ipinfo.io/json | grep -E '"ip"|"org"|"country"'
As die land tussen lopies verander het, het alles wat die toets daarna gekies het ook verander. Skryf die waargenome uitgang langs elke resultaat en die verwarring verdwyn meestal.
Stadige begin eindig ná die meeste kort toetse
'n TCP-verbinding begin nie teen die skakeltempo nie. Dit begin met 'n klein oorlappingsvenster, verdubbel dit ongeveer elke rondtereis, en bereik eers die pad se kapasiteit ná verskeie rondtereise. 'n Toets van tien sekondes op 'n pad met hoë latency kan 'n aansienlike deel van sy lewe in daardie opramp deurbring.
Dis waarom 'n tonnel met meer latency swakker op 'n kort toets vaar as wat hy verdien, en waarom 'n langer lopie dikwels 'n hoër syfer rapporteer sonder enige konfigurasieverandering. Die RFC 6349-deurvloeiraamwerk hanteer dit eksplisiet, en daarom loop ernstige metings lank genoeg om 'n bestendige toestand te bereik. 'n Lopie van vyf sekondes op 'n satellietpad meet die versneller, nie die pad nie.
Kyk na die verbindingsfases eerder as om 'n enkele syfer te vertrou. Curl rapporteer elke fase afsonderlik, so jy kan sien of tyd in die handdruk, die opramp of die oordrag ingaan:
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
Hardloop dit twee keer agtereenvolgens na dieselfde bestemming. As die tweede lopie baie vinniger is, het jy die opramp gemeet, nie die pad nie, en enige vergelyking wat net die eerste lopie gebruik het, is verdag.
Een stroom en ses strome meet verskillende dinge
'n Enkele TCP-stroom word beperk deur die venster wat hy in vlug kan hou, wat ongeveer die rondtereistyd vermenigvuldig met die tempo is. Op 'n lang pad oorskry daardie produk wat een stroom sal gebruik, so 'n enkele aflaai onderrapporteer die kapasiteit wat bestaan. Ses parallelle strome vul die gaping en lewer 'n groter syfer.
iperf3 -c speed.example.net -t 20
iperf3 -c speed.example.net -t 20 -P 6
mtr -rwc 50 speed.example.net
Albei syfers is waar. Die enkelstroomsyfer vertel jou wat een aflaai sal doen, wat 'n blaaier-oortjie gewoonlik kry. Die parallelle syfer vertel jou wat die pad in die geheel kan dra, wat 'n torrent of 'n veeldele-aflaai kan gebruik. Om een aan te haal asof dit die ander is, is hoe 'n gesonde tonnel sonder rede vervang word.
Om 'n parallelle resultaat teen 'n enkelstroomresultaat te vergelyk, is die algemeenste manier waarop mense aflei dat 'n VPN hul spoed gehalveer het. Pas die metode aan, vergelyk dan. Die spoor in die derde opdrag voeg die ontbrekende konteks by: 'n pad met hoë jitter sal in albei modusse wisselvallige resultate lewer, en geen stroomtal maak dit reg nie.
Enkripsie kos verwerkertyd, inkapseling kos grepe
Twee meganismes loop op elke pakkie ongeag hoe vinnig die skakel is. Enkripsie verbruik prosessorty per greep, en inkapseling voeg kopgrepe by wat die skakel steeds moet dra. Albei wys as 'n plafon, en hulle het verskillende simptome.
Die prosessorplafon verskyn as 'n plato: deurvloei hou op styg maak nie saak hoeveel strome jy byvoeg nie, en die masjien se verwerker is besig terwyl die skakel dit nie is nie. Op 'n klein router of 'n selfoon is dit dikwels die werklike beperking, en dit is waarom 'n vinnige lyn steeds 'n beskeie tonnel kan lewer.
Die grepekoste is kleiner maar konstant. Ekstra kopgrepe beteken minder vrag per pakkie, en op 'n pad met 'n vaste maksimum oordragingseenheid kan hulle ook fragmentasie of swartgat veroorsaak wat as 'n stilstand by groot oordragte wys eerder as as 'n stadige gemiddelde.
| Observation | Likely mechanism | What to measure |
|---|---|---|
| Throughput flat as streams increase | CPU per packet on one core | Per-core utilisation during the test |
| Fast small transfers, stalled large ones | MTU and fragmentation | Payload size at which it breaks |
| Good average, unusable calls | Queueing delay behind a full buffer | Latency under load |
Hierdie drie word dikwels verwar omdat gebruikers almal daarvan beskryf as «die VPN is stadig». Slegs die eerste reageer op 'n groter masjien, slegs die tweede reageer op 'n kleiner MTU, en slegs die derde reageer op toubestuur.
Sit die metode in die rekord
'n Resultaat wat die moeite werd is om te hou, noem die toestel, die toegangsnetwerk, die uitgang, die meetbediener, die rigting, die stroomtal en die duur. Sonder dit kan twee syfers nie vergelyk word nie, en 'n kaartjie met een syfer is eintlik net 'n stemming.
Hou ook die slegte lopies. 'n Reeks waar een uitgang elke keer 'n stilstand veroorsaak, is baie meer insiggewend as 'n gemiddelde, en die stiltes is presies wat gemiddeldes verberg.
Toets dan die ding waaroor jy werklik omgee. As 'n groot aflaai die doel is, laai die lêer af. As 'n oproep die doel is, meet latency onder las eerder as ledige deurvloei, want 'n tonnel kan goed presteer op 'n spoedtoets en steeds elke vergadering onluisterbaar maak.