Deschiderea unui folder partajat prin VPN și așteptarea în timp ce lista directorului se târăște este o experiență cunoscută, iar primul instinct este să dai vina pe lățimea de bandă. De obicei legătura este aproape inactivă. Protocolul își petrece timpul așteptând răspunsuri, iar fiecare așteptare costă o rundă completă dus-întors pe care rețeaua locală nu o taxase niciodată. Corectează forma muncii, iar partajarea devine din nou utilizabilă.

Copia de lucru de la distanță are forma greșită

SMB deschide fișiere, citește metadate și confirmă în multe schimburi mici. O copie de lucru a controlului de versiuni pe un disc mapat presupune latența sistemului de fișiere local și citește multe fișiere mici. O bază de date de desktop extrage pagini în timp ce utilizatorul lucrează. Fiecare dintre acestea transformă întârzierea într-un multiplicator, pentru că costul crește cu numărul de schimburi pe care le face operația; așa că un tunel de 40 ms transformă câteva sute de operații în câteva secunde. Dimensiunea încărcăturii utile este aproape irelevantă în acea aritmetică.

Costul criptării este o parte mică din asta; pierderea este mai rea, pentru că o retransmisie plus o fereastră de congestie prăbușită costă mult mai mult decât octeții implicați.

Numără rundele înainte de megaocteți

Măsoară întârzierea înainte de a cumpăra capacitate. Un singur ping îți spune ce plătește fiecare schimb.

ping -c 10 fileserver.example.net

Rezumatul dă timpi de rundă minimi, medii și maximi, iar împrăștierea contează la fel de mult ca media. Înmulțește media cu numărul de schimburi pe care le face o listă de director, apoi compară cu timpul pe care îl observi cu adevărat. Dacă un fișier mare se transferă repede în timp ce navigarea este lentă, constrângerea sunt latența și numărul de cereri. Adăugarea de zece ori mai multă capacitate la o legătură care nu se saturează niciodată nu schimbă absolut nimic.

Mută munca, nu octeții

Schimbă locul unde se întâmplă munca în loc să plătești pentru o țeavă mai largă. Servește depozitul în loc să îl montezi și copiază în bloc cu un instrument care trimite doar diferențe.

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

Servirea depozitului, cum face hgweb sau un Git la distanță, îi permite clientului să lucreze pe un clon local, așa că apelurile sale la sistemul de fișiere nu traversează niciodată tunelul. rsync parcurge ambele părți și trimite blocurile modificate, eliminând majoritatea schimburilor pe care le plătește o copie naivă. O bază de date de desktop aparține unui motor pe partea de server, cu clientul redus la o interfață, sau întregul client rulează pe un host intern. Fiecare opțiune schimbă cât de multă latență suportă protocolul, și acesta este punctul.

Blocajele la aceeași dimensiune sunt un simptom MTU

Transferurile mari care se opresc după aproximativ aceeași cantitate de date, în timp ce ping și paginile mici funcționează, indică dimensiunea pachetului, nu lățimea de bandă.

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

Un test reușit înseamnă că un pachet IP de 1428 octeți traversează calea fără fragmentare, deoarece antetele ICMP și IP adaugă 28 octeți. Un eșec cu indicatorul de interzicere a fragmentării sugerează că MTU-ul utilizabil al tunelului este mai mic decât presupune serverul. Un server care trimite buffere de 9000 octeți pe o cale de 1500 octeți forțează fragmentarea sau pierderi, iar descoperirea MTU-ului căii poate eșua în tăcere când ICMP este filtrat. Reduce MTU-ul tunelului, activează mssfix în OpenVPN, sau micșorează bufferele serverului, apoi rulează din nou același transfer pentru a confirma.

Măsoară diferența care contează

Rulează aceeași operație în trei moduri unde politica permite: local, prin tunel și pe o cale directă de internet. Pentru fiecare, notează timpul dus-întors, rata unui flux mare și cât durează o listă de director sau deschiderea unei aplicații. Compararea rulării locale cu rularea prin tunel arată care cost domină. O copie care se termină lent sugerează o problemă de rată sau întârziere, în timp ce o copie care moare într-un punct constant sugerează dimensiunea pachetului sau un dispozitiv cu stare pe cale.

Când doar primii megaocteți se târăsc, uită-te la autentificare și metadate; când totul se târăște, uită-te la capacitate și pierderi. Corectează cauza potrivită și nu mai aștepta ca o legătură WAN să se comporte ca un cablu de rețea locală.

Articole similare