Γιατί η κοινή χρήση αρχείων μέσω VPN φαίνεται αργή: διαδρομές, όχι Mbps
Τα πρωτόκολλα κοινής χρήσης αρχείων υποθέτουν λανθάνουσα κατάσταση τοπικού δικτύου. Πολυλογικά μεταδεδομένα, πράξεις μικρών αρχείων και προβλήματα MTU προκαλούν κολλήματα που δεν θα διορθώσει περισσότερο εύρος ζώνης.
Το άνοιγμα ενός κοινόχρηστου φακέλου μέσω VPN και η αναμονή όσο η λίστα του καταλόγου σέρνεται είναι γνωστή εμπειρία, και η πρώτη παρόρμηση είναι να κατηγορήσουμε το εύρος ζώνης. Συνήθως η ζεύξη είναι σχεδόν αδρανής. Το πρωτόκολλο περνά τον χρόνο του περιμένοντας απαντήσεις, και κάθε αναμονή κοστίζει μια πλήρη διαδρομή που το τοπικό δίκτυο δεν χρέωνε ποτέ. Διορθώστε τη μορφή της εργασίας και ο φάκελος γίνεται ξανά χρηστικός.
Το απομακρυσμένο αντίγραφο εργασίας έχει λάθος μορφή
Το SMB ανοίγει αρχεία, διαβάζει μεταδεδομένα και επιβεβαιώνει σε πολλές μικρές ανταλλαγές. Ένα αντίγραφο εργασίας ελέγχου εκδόσεων σε συνδεδεμένο δίσκο υποθέτει λανθάνουσα κατάσταση τοπικού συστήματος αρχείων και διαβάζει πολλά μικρά αρχεία. Μια βάση δεδομένων επιφάνειας εργασίας τραβά σελίδες καθώς ο χρήστης εργάζεται. Κάθε ένα από αυτά μετατρέπει την καθυστέρηση σε πολλαπλασιαστή, γιατί το κόστος αυξάνεται με το πόσες ανταλλαγές εκτελεί η πράξη· έτσι μια σήραγγα 40 ms μετατρέπει μερικές εκατοντάδες πράξεις σε μερικά δευτερόλεπτα. Το μέγεθος του ωφέλιμου φορτίου είναι σχεδόν αδιάφορο σε αυτή την αριθμητική.
Η επιβάρυνση κρυπτογράφησης είναι μικρό μέρος· η απώλεια είναι χειρότερη, γιατί μια επαναμετάδοση μαζί με ένα κατερρευμένο παράθυρο συμφόρησης κοστίζουν πολύ περισσότερο από τα byte που εμπλέκονται.
Μετρήστε διαδρομές πριν τα megabyte
Μετρήστε την καθυστέρηση πριν αγοράσετε χωρητικότητα. Ένα μόνο ping σας λέει τι πληρώνει κάθε ανταλλαγή.
ping -c 10 fileserver.example.netΗ σύνοψη δίνει ελάχιστους, μέσους και μέγιστους χρόνους διαδρομής, και η διασπορά έχει τόση σημασία όση ο μέσος όρος. Πολλαπλασιάστε τον μέσο όρο με τον αριθμό των ανταλλαγών που εκτελεί μια λίστα καταλόγου και συγκρίνετέ τον με τον χρόνο που παρατηρείτε πραγματικά. Αν ένα μεγάλο αρχείο μεταφέρεται γρήγορα ενώ η περιήγηση είναι αργή, περιορισμός είναι η λανθάνουσα κατάσταση και ο αριθμός αιτημάτων. Το να προσθέσετε δέκα φορές χωρητικότητα σε μια ζεύξη που ποτέ δεν κορεύεται δεν αλλάζει απολύτως τίποτα.
Μετακινήστε την εργασία, όχι τα byte
Αλλάξτε πού γίνεται η εργασία αντί να πληρώνετε για πιο φαρδύ σωλήνα. Σερβίρετε το αποθετήριο αντί να το προσαρτάτε, και αντιγράψτε μαζικά με εργαλείο που στέλνει μόνο διαφορές.
rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/Όταν το αποθετήριο σερβίρεται, όπως κάνει το hgweb ή ένα απομακρυσμένο Git, ο πελάτης εργάζεται σε τοπικό κλώνο ώστε οι κλήσεις του συστήματος αρχείων να μη διασχίζουν ποτέ τη σήραγγα. Το rsync διατρέχει και τις δύο πλευρές και στέλνει αλλαγμένα μπλοκ, εξαλείφοντας τις περισσότερες ανταλλαγές που πληρώνει μια αφελής αντιγραφή. Μια βάση δεδομένων επιφάνειας εργασίας ανήκει σε μηχανή στην πλευρά του διακομιστή με τον πελάτη να περιορίζεται σε διεπαφή, ή ολόκληρος ο πελάτης τρέχει σε εσωτερικό κεντρικό υπολογιστή. Κάθε επιλογή αλλάζει πόση λανθάνουσα κατάσταση αντιμετωπίζει το πρωτόκολλο, και αυτό είναι το νόημα.
Τα κολλήματα στο ίδιο μέγεθος είναι σύμπτωμα MTU
Οι μεγάλες μεταφορές που σταματούν μετά από περίπου την ίδια ποσότητα δεδομένων, ενώ τα ping και οι μικρές σελίδες δουλεύουν, δείχνουν μέγεθος πακέτου και όχι εύρος ζώνης.
ping -M do -s 1400 -c 3 fileserver.example.netΜια επιτυχημένη δοκιμή σημαίνει ότι ένα πακέτο IP 1428 byte περνά τη διαδρομή χωρίς κατάτμηση, αφού οι κεφαλίδες ICMP και IP προσθέτουν 28 byte. Μια αποτυχία με τη σημαία απαγόρευσης κατάτμησης υποδηλώνει ότι το χρησιμοποιήσιμο MTU της σήραγγας είναι μικρότερο από ό,τι υποθέτει ο διακομιστής. Ένας διακομιστής που στέλνει buffer 9000 byte σε διαδρομή 1500 byte επιβάλλει κατάτμηση ή απορρίψεις, και η ανακάλυψη MTU διαδρομής μπορεί να αποτύχει σιωπηλά όταν φιλτράρεται το ICMP. Μειώστε το MTU της σήραγγας, ενεργοποιήστε mssfix στο OpenVPN, ή σμικρύνετε τα buffer του διακομιστή, και μετά ξανατρέξτε την ίδια μεταφορά για επιβεβαίωση.
Μετρήστε το χάσμα που έχει σημασία
Εκτελέστε την ίδια πράξη με τρεις τρόπους όπου το επιτρέπει η πολιτική: τοπικά, μέσω της σήραγγας και μέσω άμεσης διαδρομής διαδικτύου. Για κάθε ένα, σημειώστε τον χρόνο διαδρομής, τον ρυθμό μιας μεγάλης ροής και πόσο χρόνο παίρνει μια λίστα καταλόγου ή το άνοιγμα μιας εφαρμογής. Η σύγκριση της τοπικής εκτέλεσης με την εκτέλεση μέσω σήραγγας δείχνει ποιο κόστος κυριαρχεί. Ένα αντίγραφο που τελειώνει αργά υποδηλώνει πρόβλημα ρυθμού ή καθυστέρησης, ενώ ένα αντίγραφο που πεθαίνει σε σταθερό σημείο υποδηλώνει μέγεθος πακέτου ή συσκευή με κατάσταση στη διαδρομή.
Όταν σέρνονται μόνο τα πρώτα megabyte, κοιτάξτε την ταυτοποίηση και τα μεταδεδομένα· όταν όλα σέρνονται, κοιτάξτε τη χωρητικότητα και τις απώλειες. Διορθώστε το αντίστοιχο αίτιο και πάψτε να περιμένετε μια ζεύξη WAN να συμπεριφέρεται σαν καλώδιο τοπικού δικτύου.