Dues execucions, un túnel, i els números difereixen en un factor de tres. El túnel no va canviar entre elles. El que va canviar és el mesurament: un lloc de prova que tria un servidor segons la teva ubicació aparent, un nombre de fluxos que decideix si un inici lent o sis omplen la canonada, i una durada prou curta per acabar abans que el camí s'utilitzi correctament. Els tests de velocitat no són incorrectes, però responen una pregunta més estreta que la que la gent els fa.

Una adreça de sortida nova canvia la destinació de la prova

La majoria de llocs de prova trien un servidor de mesurament automàticament, i el trien en part mirant d'on sembla que ve la teva connexió. Activa el túnel i el teu país aparent canvia, així que el servidor triat canvia, i la comparació ara abasta dues rutes diferents cap a dos amfitrions diferents.

El resultat no és en absolut un mesurament de la VPN. És un mesurament del teu camí cap a un servidor que no vas triar, i la diferència entre les dues execucions pot venir dominada per l'encaminament d'aquell servidor més que per qualsevol cosa que fes el túnel.

Fixa la destinació abans de canviar res més. Totes les eines creïbles et deixen triar un servidor explícitament, i quan no ho fan, la pàgina de resultats normalment anomena el que ha utilitzat, cosa suficient per adonar-te que les dues execucions no són comparables. Confirma què ha vist el lloc abans de confiar en la tria que ha fet:

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

Si el país ha canviat entre execucions, tot el que la prova ha triat després també ha canviat. Anota la sortida observada al costat de cada resultat i la confusió gairebé desapareix.

L'inici lent acaba després que acabin la majoria de proves curtes

Una connexió TCP no comença a la velocitat de l'enllaç. Comença amb una finestra de congestió petita, la duplica aproximadament a cada viatge d'anada i tornada, i només arriba a la capacitat del camí després de diversos viatges. Una prova de deu segons en un camí amb latència alta pot passar una part substancial de la seva vida en aquesta pujada.

Per això un túnel amb més latència puntua pitjor en una prova curta del que mereix, i per això una execució més llarga sovint informa d'un número més alt sense cap canvi de configuració. El marc de rendiment RFC 6349 ho tracta explícitament, i per això els mesuraments seriosos duren prou per arribar a un estat estable. Una execució de cinc segons en un camí per satèl·lit mesura l'accelerador, no la carretera.

Mira les fases de la connexió en lloc de confiar en un sol número. Curl informa de cada etapa per separat, així que pots veure si el temps se'n va a l'apretada de mans, a la pujada o a la transferència:

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

Executa-ho dues vegades seguides cap a la mateixa destinació. Si la segona execució és molt més ràpida, estaves mesurant la pujada, no el camí, i qualsevol comparació que només hagi fet servir la primera és sospitosa.

Un flux i sis fluxos mesuren coses diferents

Un sol flux TCP està limitat per la finestra que pot mantenir en vol, que és aproximadament el temps d'anada i tornada multiplicat per la velocitat. En un camí llarg aquest producte supera el que un flux utilitzarà, així que una sola descàrrega informa per sota de la capacitat que existeix. Sis fluxos paral·lels omplen el buit i produeixen un número més gran.

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

Els dos números són certs. La xifra d'un sol flux et diu què farà una descàrrega, que és el que acostuma a obtenir una pestanya del navegador. La xifra paral·lela et diu què pot portar el camí en conjunt, que és el que pot aprofitar un torrent o una descàrrega per parts. Citar una com si fos l'altra és com es reemplaça un túnel sa sense cap motiu.

Comparar un resultat paral·lel amb un resultat d'un sol flux és la manera més habitual que té la gent de concloure que la VPN li ha reduït la velocitat a la meitat. Iguala el mètode i després compara. El rastre de la tercera ordre afegeix el context que falta: un camí amb jitter alt produirà resultats inconsistents en tots dos modes, i cap nombre de fluxos ho arregla.

El xifratge costa temps de processador, l'encapsulament costa bytes

Dos mecanismes s'executen a cada paquet independentment de la velocitat de l'enllaç. El xifratge consumeix CPU per byte, i l'encapsulament afegeix bytes de capçalera que l'enllaç encara ha de transportar. Tots dos es mostren com un sostre, i tenen símptomes diferents.

El sostre de la CPU apareix com un altiplà: el rendiment deixa de pujar per molts fluxos que afegeixis, i el processador de la màquina està ocupat mentre l'enllaç no ho està. En un encaminador petit o un telèfon, sovint aquest és el límit real, i per això una línia ràpida pot donar un túnel modest.

El cost en bytes és més petit però constant. Les capçaleres extra signifiquen menys càrrega útil per paquet, i en un camí amb una unitat màxima de transmissió fixa també poden provocar fragmentació o forat negre que es mostra com una aturada en transferències grans en lloc d'una mitjana lenta.

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

Aquests tres es confonen sovint perquè els usuaris els descriuen tots com «la VPN va lenta». Només el primer respon a una màquina més gran, només el segon respon a una MTU més petita, i només el tercer respon a la gestió de cues.

Posa el mètode al registre

Un resultat que val la pena conservar anomena el dispositiu, la xarxa d'accés, la sortida, el servidor de mesurament, la direcció, el nombre de fluxos i la durada. Sense això, dos números no es poden comparar, i un tiquet amb un sol número és en realitat un estat d'ànim.

Guarda també les execucions dolentes. Una sèrie on una sortida produeix una aturada cada vegada és molt més informativa que una mitjana, i les aturades són exactament el que amaguen les mitjanes.

Després prova el que realment t'importa. Si l'objectiu és una descàrrega gran, descarrega el fitxer. Si l'objectiu és una trucada, mesura la latència sota càrrega en lloc del rendiment en repòs, perquè un túnel pot puntuar bé en una prova de velocitat i encara fer que cada reunió sigui inescoltable.

Articles relacionats