Чи є в Windows техніка, яка може вибірково обмежувати пропускну здатність запущеного процесу?
Чи є в Windows техніка, яка може вибірково обмежувати пропускну здатність запущеного процесу?
Відповіді:
Я використовую Net Limiter , який має безкоштовну версію, але, на жаль, вам потрібно буде оплатити функцію обмеження .
NetLimiter - це надзвичайний інструмент контролю та моніторингу трафіку в Інтернеті, розроблений для Windows. Ви можете використовувати NetLimiter для встановлення лімітів швидкості завантаження / завантаження програм або навіть одного з'єднання та контролювати їх Інтернет-трафік.
Поряд з цією унікальною особливістю, Netlimiter пропонує всебічний набір інструментів статистики в Інтернеті. Він включає вимірювання трафіку в режимі реального часу та довгострокову статистику інтернет-трафіку за додатком
Є вагомі причини, щоб розглянути підхід "маршрутизатор, орієнтований на Інтернет", для управління мережею в цілому - однак, оскільки оригінальне питання було специфічним і користувач, можливо, може бути єдиним комп'ютером у мережі, що є вторинним питанням.
На одну з інших головних відповідей я деякий час перевіряв NetBalancer . Він працює дуже добре - і його легко налаштувати.
NetBalancer можна придбати на їх веб-сторінці приблизно за 50 доларів. Пробна / безкоштовна версія дозволяє контролювати з'єднання, але не допускає дроселювання.
Альтернатива - NetLimiter . Він має безкоштовний пробний період - але починається від ~ 20 доларів для версії Lite або ~ 30 доларів для версії Pro. NetLimiter - це перевірений перехідний додаток для багатьох SysAdmins.
Коли випробування NetLimiter закінчується, доки ви не купуєте ліцензію, він стає інструментом, призначеним лише для моніторингу - і більше не підтримує дроселювання. Це все ще може бути корисно, але не для цього випадку використання.
Хоча використання розумного / високо настроюваного маршрутизатора зазвичай є кращим підходом до цілісного управління мережею, відключення між цим та оригінальним питанням не пояснено у відповіді @ ZaB. Оригінальне запитання конкретно задає процес - який маршрутизатор не може надійно визначити.
Єдиний варіант, близький до корисного для цього, - це якщо програма спілкується лише через певний канал або тип трафіку, який легко може бути визначений маршрутизатором. Нижче наведено приклад завантаження EA Origin:
В даний час в Origin використовується Akamai. Зазвичай я встановлюю автоматичне завантаження / оновлення в будь-який час, але я вважаю за краще, щоб він не використовував всю ємність лінії, поки я зайнятий іншими важливими справами. Походження буває дуже погано в цьому роді на речі, таким чином, він не підтримує графік завантаження або завантаження. Наразі мій робочий стіл завантажує гру за допомогою сервера "a1750.d.akamai.net". Маршрутизатор MikroTik (приклад розумного маршрутизатора) може взяти до уваги, що це ім'я DNS використовувалося (воно буде знаходитися в кеш-пам'яті DNS з IP-адресою) і може бути налаштовано тимчасово, щоб додати IP-адресу цільового сервера до списку адрес " ". Весь трафік до / зі списку адрес може бути доданий до заглушеної черги, тим самим, технічно, заглушивши одну програму.
Підхід вище є наївним. EA може в будь-який час змінити ім'я сервера, використовуваний протокол або інший неспоріднений сервіс, що використовує інфраструктуру Akamai, може бути ненавмисно заглушений. Тепер моє блискуче нове правило стає марним і порушеним.
Ось мій бідний чоловік дрочить:
Він точно не обмежує пропускну здатність, він швидше призупиняє / поновлює процес їжі пропускної здатності і, таким чином, звільняє деяку пропускну здатність для інших програм. І це безкоштовно!
Вам потрібен PsSuspend.exe (я помістив цей файл у C: \ tools \ sysinternals) та пакетний файл (наприклад) slow.bat:
@echo off
:START
c:\tools\sysinternals\pssuspend.exe %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
c:\tools\sysinternals\pssuspend.exe -r %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
goto START
Тепер відкрийте командний рядок як адміністратор і запустіть пакетний файл з програмою дроселів як параметром
slow.bat filetransfer.exe
(замініть filetransfer.exe на ім’я програми)
Якщо ви закінчите, натисніть CTRL-C і скасуйте партію.
Якщо програма все ще запущена, розглянути можливість відновити програму, якщо ви перервали пакет, поки програма була призупинена:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(замініть filetransfer.exe на ім’я програми)
Ви можете використовувати групову політику Windows для зменшення пропускної здатності будь-якого процесу. Йти до:
Тут ви можете побачити поточну політику та створити нові:
Майстер дозволяє створити політику для зменшення пропускної здатності для будь-якого:
А потім ваша політика може бути відфільтрована:
Ви також можете створити ці політики в Powershell , запустивши:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Хоча це може зажадати прав адміністратора, і, здається, є помилка, коли такі графіки, створені таким чином, не відображатимуться в графічному інтерфейсі.