Οι αντιγραφές αρχείων καθυστερούν όταν συνδέεται το VPN: πολυκάναλο SMB
Μια αντιγραφή περιμένει το πιο αργό κανάλι της, οπότε μια υγιής δοκιμή εύρους ζώνης κρύβει την αιτία. Επιβεβαιώστε το κανάλι της σήραγγας, βγάλτε το από το SMB και μετά μετρήστε και τις δύο διαδρομές.
Η αντιγραφή ενός αρχείου ανάμεσα σε δύο μηχανήματα Windows είναι γρήγορη μέχρι που και τα δύο μπαίνουν στο ίδιο VPN, και τότε καταρρέει, ενώ μια δοκιμή ρυθμού μετάδοσης στο ίδιο ζεύγος εξακολουθεί να αναφέρει σχεδόν την ταχύτητα της γραμμής. Αυτή η διαφορά είναι η διάγνωση: ο σύνδεσμος είναι εντάξει και κάτι διαλέγει χειρότερη διαδρομή για την ίδια τη μεταφορά. Αυτό το κάτι είναι συνήθως το πολυκάναλο SMB3, που κάνει ακριβώς αυτό για το οποίο σχεδιάστηκε. Βγάλτε το επιπλέον κανάλι από την εικόνα και η αντιγραφή επιστρέφει στον φυσικό σύνδεσμο.
Το σύμπτωμα περιμένει το πιο αργό κανάλι του
Το πολυκάναλο επιτρέπει σε μία συνεδρία SMB να χρησιμοποιεί πολλές συνδέσεις TCP, μία για κάθε κατάλληλο ζεύγος διευθύνσεων μεταξύ πελάτη και διακομιστή. Όταν και τα δύο μηχανήματα βρίσκονται στο LAN και στην ίδια σήραγγα, τα Windows μπορούν να ζευγαρώσουν τις διευθύνσεις του LAN με τις διευθύνσεις της σήραγγας και να θεωρήσουν και τα δύο ζεύγη χρησιμοποιήσιμα. Η συνεδρία καταλήγει με περισσότερα κανάλια από όσα χρειάζεται ο φυσικός σύνδεσμος, και ένα από αυτά είναι πολύ πιο αργό.
Δεν αποτυγχάνει. Περιμένει, γιατί η συνεδρία δεν μπορεί να τελειώσει γρηγορότερα από το πιο αργό κανάλι της.
Γι’ αυτό μια δοκιμή εύρους ζώνης μπορεί να φαίνεται υγιής ενώ μια αντιγραφή σέρνεται: μια μέτρηση μίας ροής μπορεί να διαλέξει μία διαδρομή, ενώ η μεταφορά ήταν απλωμένη σε δύο. Διαβάστε τη λίστα καναλιών πριν αλλάξετε οποιαδήποτε ρύθμιση προσαρμογέα, και διαβάστε τη όσο η αντιγραφή τρέχει ακόμη, γιατί μια αδρανής συνεδρία δεν δείχνει τίποτα. Αυτό που θα σημειώσετε πρέπει να ονομάζει τη διεπαφή πίσω από κάθε κανάλι, όχι μόνο πόσο αργό έμοιαζε το αποτέλεσμα.
Επιβεβαιώστε ότι υπάρχει δεύτερο κανάλι
Δύο cmdlet απαντούν στην ερώτηση άμεσα. Η λίστα συνδέσεων δείχνει τα κανάλια σε χρήση, και η σύνοψη συνεδρίας δείχνει την ίδια τη σύνδεση. Τρέξτε και τα δύο κατά τη διάρκεια της αργής αντιγραφής.
Get-SmbMultichannelConnection
Get-SmbConnectionΨάξτε για περισσότερες από μία γραμμές σημασμένες ως επιλεγμένες για τον ίδιο διακομιστή, μετά αναλύστε τη διεύθυνση του πελάτη στην ύποπτη γραμμή. Αν αυτή η διεύθυνση ανήκει στον προσαρμογέα της σήραγγας, η δεύτερη διαδρομή είναι πραγματική και επιβεβαιωμένη. Αν κάθε γραμμή ανήκει στη φυσική διεπαφή, το πολυκάναλο δεν είναι το πρόβλημά σας και η αντιγραφή είναι αργή για άσχετο λόγο. Κάντε αυτή την επιβεβαίωση πρώτη, γιατί η επισκευή είναι αρκετά διαταρακτική ώστε να αξίζει ένα λεπτό αποδείξεων.
Get-NetIPAddress -IPAddress 10.20.30.44Οι διευθύνσεις εδώ είναι δεσμευτικές θέσεις. Αντικαταστήστε τις με ό,τι αναφέρει η δική σας έξοδος, γιατί το να αντιγράφετε μια διεύθυνση από ένα blog είναι ο τρόπος με τον οποίο μια εντολή που δουλεύει γίνεται ένα μπερδεμένο μήνυμα σφάλματος.
Βγάλτε τη σήραγγα από το SMB και μετά μετρήστε ξανά
Η απενεργοποίηση του πολυκάναλου είναι ο γρηγορότερος τρόπος να επιβεβαιώσετε τη διάγνωση, και είναι αναστρέψιμη. Εφαρμόστε τη ρύθμιση πελάτη στο μηχάνημα που κάνει την αντιγραφή και τη ρύθμιση διακομιστή στο μηχάνημα που φιλοξενεί τον κοινόχρηστο φάκελο, γιατί κάθε πλευρά μόνη της μπορεί να κρατήσει ζωντανό το επιπλέον κανάλι. Η αλλαγή ισχύει για νέες συνδέσεις και όχι για υπάρχουσες, οπότε μια ανοιχτή συνεδρία την επιβιώνει. Επανεκκινήστε και τα δύο μηχανήματα, ή τουλάχιστον κλείστε κάθε χειριστήριο προς τον κοινόχρηστο φάκελο, πριν μετρήσετε οτιδήποτε.
Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -ForceΕπιβεβαιώστε τη νέα κατάσταση και μετά δείτε τι διαφημίζει τώρα ο διακομιστής στους πελάτες.
Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *Η διεπαφή της σήραγγας θα πρέπει να πέσει έξω από αυτή τη διαφημιζόμενη λίστα. Αν δεν πέσει, η ρύθμιση προσγειώθηκε στο λάθος άκρο ή μια παλιά συνεδρία είναι ακόμη ανοιχτή. Αν η κοινή χρήση αρχείων απλώς δεν πρέπει να χρησιμοποιεί τη σήραγγα, αποδεσμεύστε το στοιχείο διακομιστή από αυτόν τον προσαρμογέα, που αφήνει τη σήραγγα χρησιμοποιήσιμη για κάθε άλλη υπηρεσία.
Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_serverΠροτιμήστε τη διαδρομή του LAN χωρίς να προσποιείστε ότι διαγράφει κανάλια
Μια μετρική διεπαφής λέει στα Windows ποια διαδρομή να προτιμούν για νέες συνδέσεις. Δεν αφαιρεί ένα κανάλι που το πολυκάναλο έχει ήδη αποφασίσει να ανοίξει. Το να ανεβάσετε τη μετρική της σήραγγας αξίζει τον κόπο, γιατί κρατά την άσχετη κίνηση μακριά από την αργή διαδρομή και κάνει την προτιμώμενη διαδρομή προβλέψιμη, αλλά είναι ένα σπρώξιμο, όχι ένα φίλτρο.
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000Αντιγράψτε το ψευδώνυμο από αυτή την έξοδο αντί να το πληκτρολογήσετε, γιατί μερικές εγκαταστάσεις μεταφράζουν το όνομα του προσαρμογέα και η αγγλική συμβολοσειρά δεν θα ταιριάξει.
Μετά μετρήστε ξανά και τους δύο αριθμούς: την αντιγραφή αρχείου και μια δοκιμή ρυθμού μετάδοσης στο ίδιο ζεύγος. Αν η αντιγραφή ανακάμπτει ενώ η δοκιμή ρυθμού δεν ήταν ποτέ αργή, το πολυκάναλο ήταν η αιτία και μπορείτε να σταματήσετε. Αν καταρρέουν και τα δύο, η σήραγγα είναι το σημείο συμφόρησης και το πολυκάναλο απλώς το μεγέθυνε. Αν η αντιγραφή μένει αργή ενώ και οι δύο διαδρομές φαίνονται σωστές, το υπόλοιπο πρόβλημα ζει στον κοινόχρηστο φάκελο, στον χώρο αποθήκευσης ή σε ένα πρόγραμμα οδήγησης φίλτρου, που είναι άλλη έρευνα.