Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Giới hạn tốc độ truyền tệp mạng trên Windows

Trong bài viết này, chúng tôi sẽ chỉ cách hạn chế tốc độ truyền dữ liệu mạng đến/từ Windows Server 2016 và Windows 10 bằng công cụ tích hợp và bên thứ ba. Bạn có thể biết rằng ứng dụng Windows mặc định sử dụng hầu hết băng thông giao diện mạng khả dụng. Điều này có thể gây ra vấn đề nếu một tác vụ (chủ yếu là thư mục chia sẻ mạng SMB) sử dụng toàn bộ băng thông của card mạng. Bạn có thể hạn chế tốc độ sao chép tệp tối đa từ thư mục chia sẻ mạng, từ đó cung cấp tài nguyên card mạng được đảm bảo cho người dùng ứng dụng khác.

Để quản lý lớp hoặc ưu tiên lưu lượng trong mạng TCP/IP, công nghệ QoS (Quality of Service) được dùng.

Cấu hình QoS Group Policy trên Windows

Bạn có thể quản lý ưu tiên lưu lượng trong Windows dùng cài đặt QoS GPO. Trong kịch bản này, tôi sẽ hạn chế tốc độ truyền dữ liệu cho tất cả kết nối ra. (Chính sách sẽ được áp dụng ngay cả khi người dùng sao chép tệp từ máy chủ của bạn.) Sử dụng ví dụ này, bạn có thể hạn chế tốc độ cho bất kỳ ứng dụng, cổng hoặc máy chủ/trang web nào.

QoS Group Policies được hỗ trợ trong:

  • Windows Server 2008 trở lên
  • Windows Vista trở lên

Trước hết, kiểm tra cài đặt card mạng để đảm bảo tùy chọn Qos Packet Scheduler được bật.

  1. Chạy Local Group Policy Editor (gpedit.msc), đi đến Computer Configuration -> Windows Settings -> Policy-based QoS và nhấn Create new policy;
  2. Chỉ định tên chính sách, tích tùy chọn Specify Outbound Throttle Rate và đặt Throttle Rate. Đây là tốc độ tính bằng MBps/KBps bạn muốn hạn chế tốc độ lưu lượng ra; Lưu ý. Bạn cũng có thể đặt giá trị DSCP. DSCP (Differenciated Services Code Point) có thể dùng trên router nâng cao như Cisco/Mikrotik. Tùy thuộc vào giá trị DSCP của gói tin mạng, router sẽ đặt ưu tiên cho nó. Đừng dùng tùy chọn này nếu bạn không chắc về cài đặt QoS DSCP trên router của mình.
  3. Sau đó bạn có thể chọn tiến trình/ứng dụng (tệp thực thi .exe) hoặc trang web IIS http(s) mà chính sách sẽ áp dụng. Tôi để tùy chọn All applications được tích;
  4. Bạn có thể chỉ định giao diện IP trên máy tính mà chính sách sẽ áp dụng. Bạn có thể cần nếu có nhiều card mạng hoặc IP alias;
  5. Bạn cũng có thể đặt địa chỉ IP đích để hạn chế tốc độ truyền cho nó;
  6. Sau đó chỉ định giao thức mà chính sách sẽ áp dụng (TCP, UDP, hoặc TCP và UDP). Bạn cũng có thể chọn cổng nguồn và đích. Nếu không chắc ứng dụng dùng giao thức gì, chọn TCP and UDP. Nếu muốn hạn chế tốc độ truy cập tệp chia sẻ trong thư mục SMB, chọn TCP và Cổng 445.

QoS policy trong Windows đã được cấu hình. Bạn không cần khởi động lại máy tính, tốc độ truyền dữ liệu trong mạng sẽ được giới hạn ngay sau khi áp dụng thay đổi. Lưu ý rằng Throttle Rate hiển thị tính bằng kilobyte trong trình chỉnh sửa chính sách, ngay cả khi bạn chọn MB làm giá trị.

Vì tôi chọn tất cả ứng dụng và tất cả cổng, chính sách giới hạn tốc độ truyền tệp mạng tối đa ở 3 MB (bao gồm sao chép tệp dùng File Explorer — explorer.exe). Trong ảnh chụp màn hình dưới đây, bạn thấy chính sách QoS đã cấu hình làm chậm tốc độ truyền tệp mạng trên Windows.

Cũng có các chính sách QoS nâng cao chỉ có trong phần Computer Configuration Group Policy. Bạn có thể hạn chế lưu lượng TCP đến trong tab Inbound TCP Traffic (tab DSCP Marking Override đề cập đến cài đặt DSCP, chúng ta không bàn ở đây).

Như bạn thấy, có 4 mức hạn chế lưu lượng. Bảng sau hiển thị các mức và tốc độ của chúng.

Inbound TCP throughput level Maximum Transfer Rate
0 64 KB
1 256 KB
2 1 MB
3 16 MB

Quản lý chính sách QoS mạng Windows qua PowerShell

Bạn có thể dùng PowerShell để tạo và quản lý chính sách QoS mạng. Ví dụ, để tạo chính sách QoS hạn chế băng thông cho lưu lượng SMB (chia sẻ tệp), dùng lệnh sau:

New-NetQosPolicy -Name "SMBRestrictFileCopySpeed" -SMB -ThrottleRateActionBitsPerSecond 10MB

Name : SMBRestrictFileCopySpeed
Owner : Group Policy (Machine)
NetworkProfile : All
Precedence : 127
Template : SMB
JobObject :
ThrottleRate : 10.486 MBits/sec

Để hiển thị danh sách chính sách QoS đã áp dụng trên máy tính, chạy lệnh:
Get-NetQosPolicy

Để chỉnh sửa hoặc xóa chính sách QoS, cmdlet Set-NetQosPolicy và Remove-NetQosPolicy được dùng.

Remove-NetQosPolicy -Name SMBRestrictFileCopySpeed

Set-SmbBandwidthLimit: Cấu hình giới hạn băng thông SMB bằng PowerShell

Cmdlet Set-SmbBandwidthLimit cho phép hạn chế tốc độ truyền tệp qua giao thức SMB. Trước hết, cài đặt thành phần Windows Server SMB Bandwidth Limit bằng PowerShell:

Add-WindowsFeature -Name FS-SMBBW

Hoặc cài từ Server Manager đồ họa (Add Windows Feature -> SMB Bandwidth Limit).

Thường mô-đun này dùng để cấu hình giới hạn băng thông cho Hyper-V Live Migration. Ví dụ, lệnh sau sẽ hạn chế tốc độ di chuyển máy ảo tối đa ở 100 MB/s.

Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB

Bạn cũng có thể dùng tham số -Category Default để hạn chế lưu lượng truyền tệp thông thường qua SMB.

Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB

FS-SMBBW có sẵn trong Windows Server 2012 R2 trở lên.

Giới hạn băng thông truyền tệp trong Robocopy

Khi làm việc với robocopy, bạn cũng có thể dùng tham số đặc biệt để hạn chế tốc độ sao chép/di chuyển tệp qua mạng. Đó là /ipg (Inter packet Gap). Khóa này đặt khoảng cách giữa các gói tin tính bằng mili giây và dùng để giảm tải mạng khi sao chép tệp qua kênh tốc độ thấp. Robocopy truyền dữ liệu qua mạng theo khối 64 KB. Vì vậy, nếu bạn biết băng thông đường truyền mạng, bạn có thể tính giá trị /ipg phù hợp dựa trên yêu cầu tốc độ truyền.

Nếu không muốn đi sâu vào công thức, bạn có thể dùng Robocopy IPG Calculator sẵn: https://www.zeda.nl/index.php/en/robocopyipgcalculator-en-2

Bạn cũng có thể dùng giao thức BITS để sao chép dữ liệu sang liên kết mạng chậm hoặc không ổn định (xem ví dụ trong bài viết cách sao chép tệp lớn dùng BITS và PowerShell). Giao thức BITS cho phép quản lý động tốc độ truyền dữ liệu giữa hai máy chủ tùy thuộc vào tải kênh và hỗ trợ tiếp tục tải xuống.

Định hình lưu lượng dùng công cụ bên thứ ba

Giải pháp thương mại phổ biến nhất để giới hạn thông lượng trong Windows tùy theo cổng, ứng dụng hoặc đích là NetLimiter. Công cụ miễn phí phổ biến nhất là TMeter Free.

Cũng đáng nhắc đến:

  1. Glasswire – cũng bao gồm tường lửa và giám sát mạng;
  2. NetBalancer – giám sát mạng và đặt quy tắc lưu lượng;
  3. cFosSpeed – có thể cấu hình ưu tiên lưu lượng cho ứng dụng;
  4. Net Peeker – giống Glasswire, có tính năng tường lửa và có thể đặt ưu tiên lưu lượng.

Chính sách QoS Windows có thể giới hạn tốc độ truyền dữ liệu trong mạng tốt, vì vậy nếu bạn muốn làm điều đó, hãy thử QoS trước hết. Giống như bất kỳ chính sách nào, bạn có thể cấu hình chúng ở cấp miền với bảng điều khiển gpmc.msc.

Phần mềm bên thứ ba có nhiều tính năng và giao diện đồ họa, nhưng hầu hết các ứng dụng này là thương mại.