У цій статті ми розглянемо способи обмеження швидкості передачі даних по мережі з / на Windows Server 2016 і Windows 10 за допомогою вбудованих і сторонніх коштів. Як відомо, що за замовчуванням, додатки Windows використовують мережевий інтерфейс по максимуму. Це може викликати проблеми, коли певна задача (найчастіше це загальні мережеві папки) використовують всю доступну пропускну здатність мережевої карти. У цей випадку ви можете обмежити максимальну швидкість копіювання файлів з мережевої папки, і надати користувачам інших додатки гарантовані ресурси мережевої карти.
Для управління класами і пріоритетами трафіку в мережах TCP / IP використовується технологія QoS (якість обслуговування).
Налаштування групової політики QoS в Windows
Ви можете управляти пріоритетами трафіку в Windows за допомогою налаштувань групової політики QoS. У цьому сценарії я обмежу швидкість передачі даних для всіх вихідних з’єднань (політика буде застосовуватися, в тому числі, коли користувачі копіюють файли з вашого сервера). На основі цього прикладу ви зможете обмежити швидкість для будь-якої програми, порту або сайту.
Групові політики QoS підтримується в:
- Windows Server 2008 і вище
- Windows Vista і вище
В першу чергу налаштування параметри мережевої карти і переконайтеся, що у вас включена опція Планувальник пакетів Qos.
- Запустіть оснащення локального редактора GPO (gpedit.msc) і перейдіть в розділ Конфігурація комп’ютера -> Налаштування Windows -> QoS на основі політики та натисніть Створіть нову політику;
- Вкажіть ім’я політики, включіть опцію Вкажіть швидкість дросельної заслінки і задайте обмеження швидкості Швидкість дросельної заслінки. Це швидкість в MBps / KBps (мегабайтах / кілобайтах) до якої ви хочете обмежити вихідний трафік.
замітка. Також є можливість виставити DSCP значення. DSCP (Differenciated Services Code Point) може використовуватися на просунутих маршрутизаторах типу Cisco / Mikrotik. Залежно від значення DSCP у пакета, маршрутизатори виставлятимуть цього пакету пріоритет. Не використовуйте цей параметр, якщо ви не впевнені в налаштуваннях QoS DSCP на ваших маршрутизаторах.
- Далі можете вибрати конкретний процес / додаток (виконуваний ехе файл) або певний http (s) сайт IIS, до якого буде застосовуватися політика. У моєму випадку я залишу опцію Усі додатки;
- Ви можете вказати до якого IP на вашому комп’ютері буде застосовуватися політика. Це може знадобитися, якщо у вас є кілька мережевих карт або IP алиасов;
- Також ви можете вказати цільової IP, з яким ви хочете обмежити швидкість передачі;
- Далі вказується протокол, до якого буде застосовується політика (TCP, UDP або TCP and UDP). А також можете вибрати вихідний і цільовий порт. Якщо ви не впевнені за яким протоколом працює ваш додаток, яке ви хочете обмежити, вибирайте TCP and UDP. Якщо ви хочете обмежити швидкість доступу до загальних файлів в мережевій теці, вкажіть протокол TCP і 445 порт;
Налаштування QoS політики в Windows завершена. Перезавантажуватися не треба, відразу після застосування змін швидкість передачі по мережі почне Шейп. Зверніть увагу, що Throttle Rate відображається редакторі політик в кілобайти, навіть якщо ви вибрали значення 3 МБ.
Так як я вибрав всі програми і всі порти, дана політика буде обмежувати максимальну швидкість передачі файлів по мережі до 3 Мб (в тому числі при копіюванні файлів через File Explorer – explorer.exe).
ще існують Advanced QoS політики, Які знаходяться у секції конфігурації політик комп’ютера. Ви можете обмежити вхідний TCP трафік на вкладці Вхідний трафік TCP. (Вкладка DSCP Marking Override відноситься до налаштувань DSCP, її розглядати ми не будемо)
Як ви бачите, є 4 рівня обмеження трафіку. У таблиці нижче рівні і їх швидкості.
Рівень пропускної здатності вхідного TCP | Максимальна швидкість передачі |
0 | 64 Кб |
1 | 256 Кб |
2 | 1 Мб |
3 | 16 Мб |
Управління політиками QoS Windows засобами PowerShell
Для створення і управління політиками QoS можна використовувати PowerShell. Наприклад, щоб створити політику QoS, що обмежує пропускну здатність для SMB (файлового) трафіку, використовуйте команду:
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
Щоб вивести список застосованих політик QoS на комп’ютері, виконайте команду:Get-NetQosPolicy
Щоб змінити, або видалити політику QoS, використовуються відповідно командлети Set-NetQosPolicy
і Remove-NetQosPolicy
.
Remove-NetQosPolicy -Name SMBRestrictFileCopySpeed
Set-SmbBandwidthLimit: управління пропускною спроможністю для SMB трафіку з PowerShell
Командир Set-SmbBandwidthLimit дозволяє обмежити швидкість передачі даних по SMB протоколу. Спочатку потрібно встановити компонент Windows Server Обмеження пропускної здатності SMB за допомогою PowerShell:
Add-WindowsFeature -Name FS-SMBBW
Або можна встановити його з графічного Server Manager (Add Windows Feature -> SMB Bandwidth Limit).
Зазвичай даний модуль застосовується для обмеження швидкості для Hyper-V Live Migration. Наприклад, наступна команда обмежити швидкість міграції віртуальних машин до 100 Мбайт / сек.
Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB
Ви також можете вказати -Category Default для обмеження звичайного трафіку для передачі файлів по протоколу SMB.
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB
Компонент FS-SMBBW доступний починаючи з Windows Server 2012 R2.
Обмеження швидкості передачі файлів в Robocopy – ключ / IPG
При використанні robocopy ви також можете використовувати спеціальний ключ, що дозволяє обмеження швидкості копіювання / переміщення файлів по мережі. Для цього використовується ключ / ipg (Inter packet Gap). Цей ключ виставляє інтервал між пакетами в мілісекундах і використовується для зниження навантаження на мережу при копіюванні по низькошвидкісних каналах. Robocopy передає дані по мережі блоками по 64 КБ, і таким чином, знаючи пропускну здатність вашого каналу, можна розрахувати потрібне значення для /ipg
, Виходячи з вимог до обмеження швидкості передачі.
Якщо ви не хочете заглиблюватися в формули, то можете використовувати вже готовий калькулятор Robocopy IPG Calclator: http://www.zeda.nl/index.php/en/robocopyipgcalculator-en-2
Управління шейпінгом трафіку за допомогою сторонніх утиліт
З платних варіантів найпопулярнішим рішенням для обмеження пропускної здатності в Windows в залежності від порту, програма, призначення є програми NetLimiter, А з безкоштовних TMeter Free.
Також можна скасувати:
- Glasswire – також включається в себе фаєрвол і мережевий моніторинг;
- NetBalancer – мережевий моніторинг і можливість налаштовувати правила для трафіку;
- cFosSpeed - може задати пріоритет трафіку для певних програм;
- Net Peeker – як і Glasswire має функцію брандмауера і можливість задавати пріоритети для трафіку.
Із завданням обмеження швидкості передачі даних по мережі відмінно справляються QoS політики Windows, тому якщо перед вами стоїть таке завдання, то політики QoS повинні бути розглянуті в першу чергу. До того ж як і будь-які політики, вони можуть бути налаштовані на рівні всього домену через консоль gpmc.msc.
Стороннє ПО більш функціонально і має графічний інтерфейс, але в більшості випадків це платні програми.