Mengapa perkongsian fail melalui VPN terasa lambat: perjalanan pergi balik, bukan Mbps
Protokol perkongsian fail menganggap latensi LAN. Metadata yang banyak bercakap, operasi fail kecil dan masalah MTU menyebabkan tersekat yang tidak akan dibaiki oleh lebih banyak lebar jalur.
Membuka folder dikongsi melalui VPN dan menunggu senarai direktori merangkak ialah pengalaman biasa, dan gerak hati pertama ialah menyalahkan lebar jalur. Biasanya pautan hampir terbiar. Protokol menghabiskan masanya menunggu balasan, dan setiap penantian menelan satu perjalanan pergi balik penuh yang tidak pernah dicaj oleh LAN. Betulkan bentuk kerja, dan perkongsian menjadi boleh guna semula.
Salinan kerja jauh mempunyai bentuk yang salah
SMB membuka fail, membaca metadata dan mengesahkan dalam banyak pertukaran kecil. Salinan kerja kawalan versi pada pemacu yang dipetakan menganggap latensi sistem fail setempat dan membaca banyak fail kecil. Pangkalan data desktop menarik halaman semasa pengguna bekerja. Setiap satunya menjadikan kelewatan sebagai pendarab, kerana kos bertambah dengan berapa banyak pertukaran yang dilakukan oleh operasi itu; oleh itu terowong 40 ms menukar beberapa ratus operasi menjadi beberapa saat. Saiz muatan hampir tidak relevan dalam aritmetik itu.
Overhed penyulitan ialah bahagian kecil daripadanya; kehilangan lebih teruk, kerana satu penghantaran semula serta tetingkap kesesakan yang runtuh menelan kos jauh lebih tinggi daripada bait yang terlibat.
Kira perjalanan pergi balik sebelum megabait
Ukur kelewatan sebelum membeli kapasiti. Satu ping memberitahu apa yang dibayar oleh setiap pertukaran.
ping -c 10 fileserver.example.netRingkasan memberikan masa perjalanan pergi balik minimum, purata dan maksimum, dan serakan sama penting dengan purata. Darabkan purata dengan bilangan pertukaran yang dilakukan oleh senarai direktori, kemudian bandingkan dengan masa yang benar-benar anda perhatikan. Jika satu fail besar dipindahkan dengan cepat manakala pelayaran lambat, hadnya ialah latensi dan bilangan permintaan. Menambah sepuluh kali kapasiti pada pautan yang tidak pernah tepu tidak mengubah apa-apa.
Alihkan kerja, bukan bait
Tukar tempat kerja berlaku daripada membayar paip yang lebih lebar. Sajikan repositori daripada memasangnya, dan salin secara pukal dengan alat yang hanya menghantar perbezaan.
rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/Menyajikan repositori, seperti yang dilakukan hgweb atau Git jauh, membolehkan klien bekerja pada klon setempat supaya panggilan sistem failnya tidak pernah melintasi terowong. rsync merentas kedua-dua belah dan menghantar blok yang berubah, menghapuskan kebanyakan pertukaran yang dibayar oleh salinan naif. Pangkalan data desktop sepatutnya berada pada enjin sebelah pelayan dengan klien dikurangkan kepada antara muka, atau seluruh klien berjalan pada hos dalaman. Setiap pilihan mengubah berapa banyak latensi yang dihadapi protokol, dan itulah intinya.
Tersekat pada saiz yang sama ialah gejala MTU
Pemindahan besar yang tersekat selepas kira-kira jumlah data yang sama, manakala ping dan halaman kecil berfungsi, menunjukkan saiz paket dan bukan lebar jalur.
ping -M do -s 1400 -c 3 fileserver.example.netUjian yang berjaya bermaksud paket IP 1428 bait melintasi laluan tanpa pemecahan, kerana pengepala ICMP dan IP menambah 28 bait. Kegagalan dengan bendera larangan pecah menunjukkan MTU terowong yang boleh digunakan lebih kecil daripada andaian pelayan. Pelayan yang menghantar penimbal 9000 bait ke laluan 1500 bait memaksa pemecahan atau penurunan, dan penemuan MTU laluan boleh gagal secara senyap apabila ICMP ditapis. Turunkan MTU terowong, aktifkan mssfix pada OpenVPN, atau kecilkan penimbal pelayan, kemudian jalankan semula pemindahan yang sama untuk mengesahkan.
Ukur jurang yang penting
Jalankan operasi yang sama dalam tiga cara di mana dasar membenarkan: setempat, melalui terowong dan melalui laluan internet terus. Bagi setiap satu, catat masa perjalanan pergi balik, kadar satu aliran besar dan berapa lama senarai direktori atau pembukaan aplikasi mengambil masa. Membandingkan jalanan setempat dengan jalanan terowong menunjukkan kos mana yang menguasai. Salinan yang selesai perlahan mencadangkan masalah kadar atau kelewatan, manakala salinan yang mati pada titik yang konsisten mencadangkan saiz paket atau peranti berkeadaan di laluan.
Apabila hanya megabait pertama terseret, lihat pengesahan dan metadata; apabila semuanya merangkak, lihat kapasiti dan kehilangan. Betulkan punca yang sepadan, dan berhenti mengharapkan pautan WAN berkelakuan seperti kabel LAN.