Как ограничить пропускную способность программ на Windows?
Существует ли в Windows такая техника, которая может выборочно ограничивать пропускную способность работающего процесса?
Существует ли в Windows такая техника, которая может выборочно ограничивать пропускную способность работающего процесса?
Я использую Net Limiter , у которого есть бесплатная версия, но, к сожалению, вам придется заплатить за функцию ограничения .
NetLimiter - это наилучшее средство контроля и мониторинга интернет-трафика, разработанное для Windows. С помощью NetLimiter вы можете установить ограничения скорости загрузки/загрузки приложений или даже одного соединения и контролировать их интернет-трафик.
Наряду с этой уникальной функцией NetLimiter предлагает полный набор инструментов для статистики интернет-трафика. Он включает в себя измерение трафика в реальном времени и долгосрочную статистику интернет-трафика для каждого приложения
Есть веские основания рассматривать подход “маршрутизатор с выходом в Интернет” для управления сетью в целом - однако, поскольку изначальный вопрос был специфическим, и пользователь вполне может быть единственным компьютером в сети, то есть второстепенным. NetBalancer
В одном из других верхних ответов, на некоторое время я протестировал NetBalancer . Он действительно хорошо работает - и его легко настроить. NetBalancer
доступен для покупки на их веб-странице примерно за 50 долларов. Пробная/бесплатная версия позволяет отслеживать соединения - но не позволяет дросселировать.
Альтернативой является NetLimiter . Он имеет бесплатный пробный период - но начинается с ~$20 для версии Lite или ~$30 для версии Pro. NetLimiter является проверенным приложением для многих системных администраторов.
По окончании пробного периода NetLimiter, пока вы не купите лицензию, становится инструментом только для мониторинга - и больше не поддерживает дросселирование. Это все еще может быть полезно - но не для этого случая использования.
Хотя использование умного/высоконастраиваемого маршрутизатора обычно является лучшим подходом к управлению сетью wholistic, несоответствие между этим и оригинальным вопросом не объясняется в ответе @ZaB. Первоначальный вопрос касается конкретно процесса, который маршрутизатор не имеет возможности надежно идентифицировать.
Единственная вариация, которая близка к полезной с этой точки зрения, это когда приложение общается только по определенному каналу или типу трафика, который легко может быть идентифицирован маршрутизатором. Ниже приведен пример загрузки Origin советника:
Origin в настоящее время использует Akamai. Обычно я устанавливаю автоматическую загрузку/обновление в любое время - но я бы предпочел, чтобы она не использовала всю пропускную способность линии, пока я занят другими более важными делами. Происхождение происходит очень плохо в это сортировка из вещи , таким образом, он не поддерживает графики загрузки или дросселирование загрузки. В настоящее время мой рабочий стол скачивает игру, используя сервер “a1750.d.akamai.net”. Маршрутизатор MikroTik (пример умного маршрутизатора) может обратить внимание на то, что это DNS имя было использовано (оно будет находиться в DNS кэше с IP-адресом) и может быть временно настроено на добавление IP-адреса сервера-получателя в “список адресов”. Весь трафик в/из списка адресов может быть добавлен в дросселируемую очередь, таким образом, технически, дросселируя одно приложение.
Однако вышеприведенный подход наивен. Советник может в any время изменить имя сервера, используемый протокол или другой несвязанный сервис, использующий инфраструктуру Akamai, может быть непреднамеренно дросселирован. Теперь мое блестящее новое правило стало бесполезным и нарушено.
Вы можете использовать групповую политику Windows для регулирования пропускной способности любого процесса. Перейдите к:
Здесь вы можете увидеть текущие политики и создать новые:
Мастер позволяет вам создать политику дросселирования для любого из них:
И ваши политики могут быть отфильтрованы:
Вы также можете создать эти политики в Powershell запустив:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Хотя это может потребовать прав администратора, и кажется, что есть ошибка , где политики, созданные таким образом, не будут отображаться в графическом интерфейсе GUI.
Это дросселирование моих бедных людей:
Оно не совсем ограничивает пропускную способность, оно скорее приостанавливает/восстанавливает процесс потребления полосы пропускания и, таким образом, освобождает часть полосы пропускания для других приложений. И это бесплатно!
Вам нужно PsSuspend.exe (я поместил этот файл на C:\tools\sysinternals) и пакетный файл (например) медленно. 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
Теперь откройте командную строку в качестве администратора и запустите пакетный файл с программой throttles в качестве параметра
slow.bat filetransfer.exe
(замените filetransfer.exe на имя вашей программы)
Если все готово, нажмите CTRL-C и отмените пакет.
Если программа все еще запущена, подумайте о возобновлении программы в случае, если вы прервали пакет во время приостановки программы:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(замените filetransfer.exe на имя вашей программы).