Способ ограничения пропускной способности программ на Windows?
Есть ли в Windows методика, которая может выборочно ограничивать пропускную способность запущенного процесса?
5 ответов
Я использую Net Limiter, у которого есть бесплатная версия, но, к сожалению, вам придется заплатить за функцию ограничения.
NetLimiter - это инструмент для контроля и мониторинга интернет-трафика, разработанный для Windows. Вы можете использовать NetLimiter, чтобы установить ограничения скорости загрузки / выгрузки для приложений или даже одного соединения и контролировать их интернет-трафик.
Наряду с этой уникальной функцией, Netlimiter предлагает полный набор инструментов для интернет-статистики. Включает измерение трафика в реальном времени и долгосрочную статистику интернет-трафика для каждого приложения
Вы можете использовать групповую политику Windows для регулирования пропускной способности любого процесса. Идти к:
- Пуск> Пуск> gpedit.msc
- Конфигурация компьютера / пользователя (выберите один или другой) > Настройки Windows> QoS на основе политик
Здесь вы можете увидеть текущие политики и создать новые:
- Либо щелкните правой кнопкой мыши "QoS на основе политик", либо выберите "Действие" > Создать новую политику...
- Затем следуйте указаниям мастера, чтобы создать новую политику регулирования.
Мастер позволяет вам создать политику регулирования пропускной способности для:
- Все на вашем компьютере
- Конкретные процессы
- Специальные веб-сайты (только для приложений, использующих протоколы HTTP)
И ваши политики могут быть отфильтрованы по:
- Протоколы TCP или UDP
- IP источника / назначения
- Порты источника / назначения
Вы также можете создать эти политики в Powershell, запустив:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
Хотя для этого могут потребоваться права администратора, и, похоже, существует ошибка, из-за которой созданные политики не отображаются в графическом интерфейсе.
Есть веские причины взглянуть на подход "Интернет-маршрутизатор" для управления сетью в целом - однако, поскольку исходный вопрос был конкретным, и пользователь вполне может быть единственным компьютером в сети, это вторичная проблема.
NetBalancer
За один из лучших ответов, некоторое время я тестировал NetBalancer. Это работает очень хорошо - и легко настроить.
NetBalancer можно приобрести на их веб-странице примерно за 50 долларов. Пробная / бесплатная версия позволяет отслеживать соединения, но не позволяет регулировать.
NetLimiter
Альтернативой является NetLimiter. Он имеет бесплатный пробный период - но начинается с ~ 20 долларов США для версии Lite или ~ 30 долларов США для версии Pro. NETLimiter - это проверенное приложение для многих пользователей SysAdmin.
Когда пробная версия NetLimiter заканчивается, пока вы не купите лицензию, она станет инструментом только для мониторинга и больше не поддерживает регулирование. Это все еще может быть полезно - но не для этого варианта использования.
Использование маршрутизатора (с объяснением того, почему это не очень хороший подход к этому варианту использования).
Хотя использование интеллектуального / высоко настраиваемого маршрутизатора обычно является лучшим подходом к целостному управлению сетью, разрыв между этим и первоначальным вопросом не объясняется в ответе @ZaB. Первоначальный вопрос конкретно касается процесса - который маршрутизатор не может надежно идентифицировать.
Один вариант, близкий к полезному с этой стороны, заключается в том, что приложение взаимодействует только по определенному каналу или типу трафика, который легко может быть идентифицирован маршрутизатором. Ниже приведен пример загрузок EA 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
Теперь откройте командную строку от имени администратора и запустите командный файл с программой Throttles в качестве параметра
slow.bat filetransfer.exe
(замените filetransfer.exe на имя вашей программы)
Если все готово, нажмите CTRL-C и отмените пакет.
Если программа все еще работает, рассмотрите возможность возобновления программы в случае, если вы прервали пакет, пока программа была приостановлена:
c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe
(замените filetransfer.exe на имя вашей программы)
Вы можете использовать TMeter Free по адресу http://www.tmeter.ru/en/.
Множество шагов по настройке регулирования можно найти, например, здесь: https://www.howtogeek.com/347711/how-to-limit-any-applications-bandwidth-on-windows/
Краткое изложение:
- Выберите сетевой адаптер для использования в «Сетевых интерфейсах».
- Добавьте определение процесса для программы, которую нужно регулировать.
- Добавьте набор фильтров с правилом для определенного процесса.
- Включите формирователь трафика ограничения скорости для этого набора фильтров и примените его.
- Нажмите «Начать/Остановить захват», чтобы включить/отключить регулирование.