Γιατί μια αντιγραφή SMB επιβραδύνεται όταν και οι δύο υπολογιστές συνδέονται στο ίδιο VPN
Το SMB3 Multichannel μπορεί να προσθέσει ένα κανάλι σήραγγας σε μια αντιγραφή LAN και να τη σύρει στη βραδύτερη διαδρομή. Επιβεβαιώστε το κανάλι και μετά λύστε τον δεσμό ή απενεργοποιήστε το και δοκιμάστε ξανά.
Μια αντιγραφή αρχείου ανάμεσα σε δύο μηχανήματα Windows σε gigabit LAN πέφτει σε ρυθμό χελώνας τη στιγμή που και τα δύο συνδέονται στο ίδιο VPN, ενώ μια δοκιμή ρυθμαπόδοσης ανάμεσα στο ίδιο ζεύγος εξακολουθεί να αναφέρει σχεδόν τη ταχύτητα γραμμής. Το πρόβλημα δεν είναι η ζεύξη, ούτε ο δίσκος. Το SMB3 Multichannel πρόσθεσε σιωπηλά μια δεύτερη σύνδεση TCP που τρέχει μέσα από τη σήραγγα, και η αντιγραφή περιμένει το κανάλι που είναι πιο αργό. Αν αφαιρεθεί αυτή η διαδρομή από το SMB, η ταχύτητα του LAN επιστρέφει.
Ένας κοινός πόρος μπορεί να ταξιδέψει σε πολλές συνδέσεις TCP
Το Multichannel επιτρέπει σε έναν πελάτη να ανοίγει ανεξάρτητες συνδέσεις προς έναν διακομιστή, μία για κάθε κατάλληλο ζεύγος διευθύνσεων. Σε ένα απλό LAN μπορεί να υπάρχει μόνο ένα ζεύγος, οπότε δεν συμβαίνει κάτι περίεργο. Προσθέστε έναν προσαρμογέα VPN και στα δύο μηχανήματα και τα Windows βλέπουν ένα δεύτερο ζεύγος, διεύθυνση σήραγγας προς διεύθυνση σήραγγας, και ανοίγουν ένα κανάλι μέσα από αυτό.
Αυτό το κανάλι είναι κρυπτογραφημένο, μοιράζεται την CPU με τη σήραγγα και διασχίζει την ίδια ζεύξη WAN με όλα τα άλλα. Μια αντιγραφή που θα χρησιμοποιούσε μόνο το LAN έχει τώρα ένα αργό μέλος στο σύνολο, και το SMB δεν το απορρίπτει σιωπηλά.
Μια δοκιμή ρυθμαπόδοσης καρφωμένη στη διεύθυνση LAN εξακολουθεί να φαίνεται υγιής, και γι' αυτό ακριβώς οι δύο μετρήσεις διαφωνούν τόσο έντονα.
Αποδείξτε ότι το κανάλι σήραγγας υπάρχει πριν αλλάξετε οτιδήποτε
Εκτελέστε τα ερωτήματα στον πελάτη όσο μια αντιγραφή είναι σε εξέλιξη, γιατί μια λίστα καναλιών έχει ενδιαφέρον μόνο όταν είναι ζωντανή.
Get-SmbMultichannelConnection | Where-Object Selected -eq $true | Format-Table ServerName, ClientIPAddress, ServerIPAddress Get-SmbConnection | Format-Table ServerName, Dialect, NumOpens
Περισσότερες από μία επιλεγμένες γραμμές για τον ίδιο διακομιστή είναι η επιβεβαίωση που χρειάζεστε. Αναλύστε τη διεύθυνση πελάτη της ύποπτης γραμμής σε μια διεπαφή. Αν αυτό το ψευδώνυμο είναι ο προσαρμογέας VPN, το κανάλι είναι πραγματικό και όχι παλιά εγγραφή.
Get-NetIPAddress -IPAddress 10.8.0.6 | Format-List IPAddress, InterfaceAlias
Οι διευθύνσεις διαφέρουν σε κάθε μηχάνημα, γι' αυτό διαβάστε αυτές που αναφέρει η δική σας έξοδος αντί να πληκτρολογήσετε τα παραδείγματα πιο πάνω.
Βγάλτε τη σήραγγα από το SMB και επανεκκινήστε και τα δύο άκρα
Η απενεργοποίηση του Multichannel είναι αλλαγή και στον πελάτη και στον διακομιστή, και αν γίνει μόνο στη μία πλευρά, η άλλη μένει ελεύθερη να συνεχίσει να προσφέρει τη διεπαφή. Τα υπάρχοντα κανάλια επιβιώνουν της ρύθμισης, γι' αυτό προγραμματίστε επανεκκίνηση αντί να περιμένετε η επόμενη αντιγραφή να συμπεριφερθεί διαφορετικά.
Set-SmbClientConfiguration -EnableMultiChannel $false -Force Set-SmbServerConfiguration -EnableMultiChannel $false -Force Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Μετά την επανεκκίνηση, απαριθμήστε τις διεπαφές που προσφέρει ο διακομιστής για SMB. Ο προσαρμογέας σήραγγας θα πρέπει να έχει εξαφανιστεί από αυτή τη λίστα. Αν είναι ακόμη παρών, η ρύθμιση προσγειώθηκε στο λάθος άκρο ή μια παλιά συνεδρία είναι ακόμη ανοιχτή.
Get-SmbServerNetworkInterface | Format-List Name, InterfaceAlias, LinkSpeed
Όταν ο στόχος είναι στενότερος από την απενεργοποίηση του Multichannel παντού, η άρση του δεσμού του στοιχείου διακομιστή από τον προσαρμογέα σήραγγας σταματά την κοινή χρήση μέσω αυτού, αφήνοντας το υπόλοιπο VPN ανέγγιχτο.
Get-NetAdapterBinding -Name "<vpn adapter>" -ComponentID ms_server Disable-NetAdapterBinding -Name "<vpn adapter>" -ComponentID ms_server
Προτιμήστε το LAN και μετρήστε δύο φορές με τον ίδιο τρόπο
Μια μέτρηση διεπαφής δεν αφαιρεί κανάλι, αλλά κατευθύνει τις νέες συνδέσεις προς τη φυσική ζεύξη και κρατά την άσχετη κίνηση μακριά από τη σήραγγα. Αντιγράψτε το ψευδώνυμο από την έξοδο αντί να το πληκτρολογήσετε, γιατί σε ορισμένες εγκαταστάσεις είναι μεταφρασμένο.
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric Set-NetIPInterface -InterfaceAlias "<vpn adapter>" -AutomaticMetric Disabled -InterfaceMetric 9000
Έπειτα επαναλάβετε και τις δύο μετρήσεις: την αντιγραφή αρχείου και μια δοκιμή ρυθμαπόδοσης μίας ροής. Αν η αντιγραφή ανακάμψει ενώ η δοκιμή ρυθμαπόδοσης μένει αμετάβλητη, η σήραγγα δεν ήταν ποτέ το σημείο συμφόρησης. Αν και οι δύο καταρρεύσουν, η διαδρομή VPN είναι το όριο και το Multichannel απλώς την έκανε ορατή. Συγκρίνετε με μια αντιγραφή που πάρθηκε πριν συνδεθεί το VPN, γιατί αυτή είναι η μόνη βάση που απομονώνει την αλλαγή.
Η απενεργοποίηση του Multichannel κοστίζει ρυθμαπόδοση σε διακομιστές που προσφέρουν πραγματικά πολλές γρήγορες διαδρομές, γι' αυτό ενεργοποιήστε το ξανά όταν το VPN φύγει από την εικόνα. Καταγράψτε ποιον προσαρμογέα αλλάξατε, γιατί ο επόμενος θα βρει τη ρύθμιση και όχι τον λόγο.