Sao chép tệp tụt dốc khi VPN kết nối: SMB đa kênh
Một bản sao chờ kênh chậm nhất của nó, nên một bài kiểm tra băng thông trông khỏe mạnh lại che giấu nguyên nhân. Xác nhận kênh của đường hầm, đưa nó ra khỏi SMB, rồi đo cả hai đường.
Sao chép một tệp giữa hai máy Windows thì nhanh cho đến khi cả hai cùng tham gia một VPN, và khi đó nó sụp đổ trong khi bài kiểm tra thông lượng qua đúng cặp máy ấy vẫn báo gần bằng tốc độ đường truyền. Khoảng cách đó chính là chẩn đoán: liên kết vẫn tốt và có thứ gì đó đang chọn một đường tệ hơn cho chính việc truyền. Thứ đó thường là SMB3 đa kênh, làm đúng việc nó được thiết kế để làm. Bỏ kênh thừa ra khỏi bài toán và bản sao quay về liên kết vật lý.
Triệu chứng chờ kênh chậm nhất của nó
Đa kênh cho phép một phiên SMB dùng nhiều kết nối TCP, mỗi kết nối cho một cặp địa chỉ phù hợp giữa máy khách và máy chủ. Khi cả hai máy cùng nằm trên LAN và trên cùng một đường hầm, Windows có thể ghép các địa chỉ LAN với các địa chỉ đường hầm và coi cả hai cặp đều dùng được. Cuối cùng phiên có nhiều kênh hơn mức liên kết vật lý cần, và một trong số đó chậm hơn hẳn.
Nó không thất bại. Nó chờ, vì phiên không thể xong nhanh hơn kênh chậm nhất của nó.
Đó là lý do một bài kiểm tra băng thông có thể trông khỏe mạnh trong khi bản sao bò từng chút: phép đo một luồng có thể chọn một đường, còn việc truyền thì đã trải trên hai đường. Hãy đọc danh sách kênh trước khi đổi bất kỳ cài đặt bộ điều hợp nào, và đọc nó khi bản sao còn đang chạy, vì một phiên rỗi không cho thấy gì. Những gì bạn ghi lại phải nêu tên giao diện đứng sau mỗi kênh, chứ không chỉ là kết quả chậm đến mức nào.
Xác nhận rằng có một kênh thứ hai
Hai lệnh cmdlet trả lời trực tiếp câu hỏi này. Danh sách kết nối cho thấy các kênh đang dùng, và bản tóm tắt phiên cho thấy chính kết nối. Chạy cả hai trong lúc sao chép chậm.
Get-SmbMultichannelConnection
Get-SmbConnectionTìm nhiều hơn một hàng được đánh dấu là đã chọn cho cùng một máy chủ, rồi phân giải địa chỉ máy khách trong hàng đáng ngờ. Nếu địa chỉ đó thuộc bộ điều hợp của đường hầm, đường thứ hai là thật và đã được xác nhận. Nếu mọi hàng đều thuộc giao diện vật lý, đa kênh không phải vấn đề của bạn và bản sao chậm vì một lý do không liên quan. Hãy làm xác nhận đó trước, vì việc sửa chữa đủ gián đoạn để xứng đáng với một phút bằng chứng.
Get-NetIPAddress -IPAddress 10.20.30.44Địa chỉ ở đây là chỗ giữ chỗ. Hãy thay bằng những gì đầu ra của chính bạn báo, vì chép một địa chỉ từ blog chính là cách một lệnh đang chạy tốt biến thành một thông báo lỗi khó hiểu.
Đưa đường hầm ra khỏi SMB rồi đo lại
Tắt đa kênh là cách nhanh nhất để xác nhận chẩn đoán, và nó có thể hoàn tác. Áp dụng cài đặt máy khách trên máy đang sao chép và cài đặt máy chủ trên máy đang lưu trữ thư mục chia sẻ, vì chỉ một phía thôi cũng có thể giữ kênh thừa sống. Thay đổi áp dụng cho kết nối mới chứ không phải kết nối hiện có, nên một phiên đang mở sẽ vượt qua nó. Khởi động lại cả hai máy, hoặc ít nhất đóng mọi tay cầm tới thư mục chia sẻ, trước khi đo bất cứ thứ gì.
Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -ForceXác nhận trạng thái mới, rồi xem máy chủ giờ quảng bá gì cho máy khách.
Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *Giao diện đường hầm đáng lẽ phải rơi khỏi danh sách được quảng bá đó. Nếu không, cài đặt đã rơi vào đầu sai hoặc một phiên cũ vẫn đang mở. Nếu việc chia sẻ tệp đơn giản là không được dùng đường hầm, hãy bỏ liên kết thành phần máy chủ khỏi bộ điều hợp đó, điều này để đường hầm vẫn dùng được cho mọi dịch vụ khác.
Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_serverƯu tiên đường LAN mà không giả vờ rằng nó xóa kênh
Chỉ số giao diện cho Windows biết nên ưu tiên đường nào cho kết nối mới. Nó không gỡ bỏ một kênh mà đa kênh đã quyết định mở. Nâng chỉ số của đường hầm vẫn đáng làm, vì nó giữ lưu lượng không liên quan tránh xa đường chậm và làm tuyến ưu tiên trở nên dễ đoán, nhưng đó là một cú huých, không phải bộ lọc.
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000Hãy sao chép bí danh từ đầu ra đó thay vì gõ nó, vì một số bản cài đặt bản địa hóa tên bộ điều hợp và chuỗi tiếng Anh sẽ không khớp.
Sau đó đo lại cả hai con số: bản sao tệp và bài kiểm tra thông lượng qua đúng cặp máy ấy. Nếu bản sao hồi phục trong khi bài kiểm tra thông lượng chưa từng chậm, đa kênh chính là nguyên nhân và bạn có thể dừng. Nếu cả hai cùng sụp, đường hầm là nút thắt và đa kênh chỉ khuếch đại nó. Nếu bản sao vẫn chậm trong khi cả hai đường trông đúng, vấn đề còn lại nằm ở thư mục chia sẻ, ổ lưu trữ hoặc một trình điều khiển lọc, và đó là một cuộc điều tra khác.