Kodėl failų bendrinimas per VPN atrodo lėtas: kelionės pirmyn ir atgal, o ne Mbps
Failų bendrinimo protokolai laiko vietinio tinklo delsą savaime suprantamu. Plepūs metaduomenys, mažų failų operacijos ir MTU problemos sukelia strigtis, kurių didesnis pralaidumas neištaisys.
Atidaryti bendrą aplanką per VPN ir laukti, kol katalogo sąrašas šliaužia, yra pažįstama patirtis, ir pirmas instinktas – kaltinti pralaidumą. Dažniausiai ryšys beveik nenaudojamas. Protokolas leidžia laiką laukdamas atsakymų, ir kiekvienas laukimas kainuoja visą kelionę pirmyn ir atgal, kurios vietinis tinklas niekada neskaičiavo. Pataisykite darbo formą, ir bendrinimas vėl taps naudingas.
Nuotolinė darbinė kopija yra netinkamos formos
SMB atidaro failus, skaito metaduomenis ir patvirtina daugelyje mažų mainų. Versijų kontrolės darbinė kopija prijungtame diske daro prielaidą apie vietinės failų sistemos delsą ir skaito daug mažų failų. Darbalaukio duomenų bazė traukia puslapius, kol naudotojas dirba. Kiekvienas iš jų paverčia delsą daugikliu, nes kaina auga su mainų, kuriuos atlieka operacija, skaičiumi; todėl 40 ms tunelis paverčia kelis šimtus operacijų keliomis sekundėmis. Naudingosios apkrovos dydis toje aritmetikoje beveik nesvarbus.
Šifravimo sąnaudos yra maža to dalis; nuostolis blogesnis, nes vienas pakartotinis perdavimas ir sugriuvęs perkrovos langas kainuoja daug daugiau nei susiję baitai.
Skaičiuokite keliones pirmyn ir atgal prieš megabaitus
Išmatuokite delsą prieš pirkdami pralaidumą. Vienas ping pasako, ką moka kiekvienas mainas.
ping -c 10 fileserver.example.netSuvestinė pateikia mažiausią, vidutinį ir didžiausią kelionės laiką, o sklaida svarbi taip pat kaip vidurkis. Padauginkite vidurkį iš mainų, kuriuos atlieka katalogo sąrašas, skaičiaus ir palyginkite su laiku, kurį tikrai matote. Jei vienas didelis failas persiunčiamas greitai, o naršymas lėtas, apribojimas yra delsa ir užklausų skaičius. Pridėti dešimt kartų daugiau pralaidumo prie ryšio, kuris niekada neprisisotina, nieko nekeičia.
Perkelkite darbą, o ne baitus
Pakeiskite, kur vyksta darbas, o ne mokėkite už platesnį vamzdį. Aptarnaukite saugyklą, o ne prijunkite ją, ir kopijuokite dideliais kiekiais įrankiu, kuris siunčia tik skirtumus.
rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/Aptarnaujant saugyklą, kaip tai daro hgweb arba nuotolinis Git, klientas gali dirbti vietinėje klonoje, todėl jo failų sistemos kvietimai niekada neperžengia tunelio. rsync apeina abi puses ir siunčia pakeistus blokus, pašalindamas daugumą mainų, kuriuos moka naivi kopija. Darbalaukio duomenų bazė priklauso serverio pusės varikliui, o klientas sumažinamas iki sąsajos, arba visas klientas veikia vidiniame hoste. Kiekviena parinktis keičia, kokiam delsos kiekiui protokolas yra veikiamas, ir tai yra esmė.
Užstrigimai ties ta pačia apimtimi yra MTU simptomas
Dideli perdavimai, kurie sustoja po maždaug tokio pat duomenų kiekio, kai ping ir maži puslapiai veikia, rodo paketo dydį, o ne pralaidumą.
ping -M do -s 1400 -c 3 fileserver.example.netSėkmingas bandymas reiškia, kad 1428 baitų IP paketas kelią praeina nesufragmentuotas, nes ICMP ir IP antraštės prideda 28 baitus. Nesėkmė su draudimo fragmentuoti vėliavėle rodo, kad naudojama tunelio MTU yra mažesnė, nei serveris mano. Serveris, siunčiantis 9000 baitų buferius į 1500 baitų kelią, priverčia fragmentuoti arba numesti, o kelio MTU aptikimas gali tyliai nepavykti, kai ICMP filtruojamas. Sumažinkite tunelio MTU, įjunkite mssfix OpenVPN, arba sumažinkite serverio buferius, tada dar kartą paleiskite tą patį perdavimą patvirtinti.
Išmatuokite tarpą, kuris svarbus
Atlikite tą pačią operaciją trimis būdais, kur politika leidžia: vietoje, per tunelį ir tiesioginiu interneto keliu. Kiekvienam užrašykite kelionės laiką, vieno didelio srauto greitį ir kiek laiko užima katalogo sąrašas ar programos atidarymas. Vietinio paleidimo palyginimas su paleidimu per tunelį parodo, kuri kaina dominuoja. Lėtai pasibaigianti kopija rodo greičio ar delsos problemą, o pastoviame taške mirštanti kopija – paketo dydį ar būseną saugantį įrenginį kelyje.
Kai velkasi tik pirmieji megabaitai, žiūrėkite autentifikavimą ir metaduomenis; kai viskas šliaužia, žiūrėkite pralaidumą ir nuostolius. Ištaisykite atitinkamą priežastį ir nustokite tikėtis, kad WAN ryšys elgsis kaip vietinio tinklo kabelis.