Obrir una carpeta compartida per la VPN i esperar mentre el llistat del directori s'arrossega és una experiència familiar, i el primer impuls és culpar l'amplada de banda. Normalment l'enllaç està gairebé inactiu. El protocol passa l'estona esperant respostes, i cada espera costa una anada i tornada sencera que la LAN mai cobrava. Arregleu la forma de la feina i el recurs torna a ser utilitzable.

La còpia de treball remota té la forma equivocada

SMB obre fitxers, llegeix metadades i confirma en molts intercanvis petits. Una còpia de treball de control de versions en un disc muntat pressuposa la latència del sistema de fitxers local i llegeix molts fitxers petits. Una base de dades d'escriptori extreu pàgines mentre l'usuari treballa. Cadascuna d'aquestes coses converteix el retard en un multiplicador, perquè el cost creix amb el nombre d'intercanvis que fa l'operació; per això un túnel de 40 ms converteix uns quants centenars d'operacions en uns quants segons. La mida de la càrrega és gairebé irrellevant en aquesta aritmètica.

La sobrecàrrega del xifratge és una part petita; la pèrdua és pitjor, perquè una retransmissió més una finestra de congestió esfondrada costa molt més que els bytes en joc.

Compteu anades i tornades abans que megabytes

Mesureu el retard abans de comprar capacitat. Un sol ping us diu què paga cada intercanvi.

ping -c 10 fileserver.example.net

El resum dóna els temps d'anada i tornada mínim, mitjà i màxim, i la dispersió importa tant com la mitjana. Multipliqueu la mitjana pel nombre d'intercanvis que fa un llistat de directori i compareu-ho amb el temps que observeu realment. Si un fitxer gran es transfereix de pressa mentre la navegació és lenta, la restricció són la latència i el nombre de peticions. Afegir deu vegades més capacitat a un enllaç que no se satura mai no canvia absolutament res.

Moveu la feina, no els bytes

Canvieu on passa la feina en comptes de pagar per més canonada. Serviu el repositori en lloc de muntar-lo, i copieu en bloc amb una eina que només enviï diferències.

rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/

Servir el repositori, com fan hgweb o un Git remot, permet al client treballar sobre un clon local, de manera que les seves crides al sistema de fitxers no creuen mai el túnel. rsync recorre els dos costats i envia els blocs canviats, cosa que elimina la majoria d'intercanvis que paga una còpia ingènua. Una base de dades d'escriptori pertany a un motor al servidor amb el client reduït a una interfície, o bé tot el client s'executa en un amfitrió intern. Cada opció canvia quanta latència suporta el protocol, i aquesta és la qüestió.

Les penjades a la mateixa mida són un símptoma d'MTU

Les transferències grans que s'aturen després d'una quantitat de dades semblant, mentre els ping i les pàgines petites funcionen, assenyalen la mida del paquet i no l'amplada de banda.

ping -M do -s 1400 -c 3 fileserver.example.net

Una prova correcta vol dir que un paquet IP de 1428 bytes travessa el camí sense fragmentar-se, ja que les capçaleres ICMP i IP n'hi afegeixen 28. Un fracàs amb el senyal de no fragmentar suggereix que l'MTU utilitzable del túnel és més petit del que el servidor suposa. Un servidor que envia buffers de 9000 bytes per un camí de 1500 bytes força la fragmentació o descarts, i el descobriment de l'MTU del camí pot fallar en silenci quan es filtra ICMP. Baixeu l'MTU del túnel, activeu mssfix a l'OpenVPN o reduïu els buffers del servidor, i torneu a executar la mateixa transferència per confirmar-ho.

Mesureu la diferència que importa

Executeu la mateixa operació de tres maneres on la política ho permeti: en local, a través del túnel i per un camí directe d'internet. Per a cada una, anoteu el temps d'anada i tornada, la velocitat d'un flux gran i quant triga un llistat de directori o l'obertura d'una aplicació. Comparar l'execució local amb la del túnel mostra quin cost domina. Una còpia que acaba lentament suggereix un problema de velocitat o de retard, mentre que una còpia que mor en un punt constant suggereix la mida del paquet o un dispositiu amb estat al camí.

Quan només arrosseguen els primers megabytes, mireu l'autenticació i les metadades; quan tot s'arrossega, mireu la capacitat i les pèrdues. Arregleu la causa que correspongui i deixeu d'esperar que un enllaç WAN es comporti com un cable de LAN.

Articles relacionats