Способ ограничения пропускной способности программ на Windows?

85

Есть ли в Windows методика, которая может выборочно ограничивать пропускную способность запущенного процесса?

Джеймс МакМэхон
источник
3
Здесь есть целый список приложений, которые могут это сделать: alternativeto.net/software/netbalancer
bgmCoder
Новые обновления NetBalencers не ограничивают программы согласно их заявлению, пробная версия составляет всего 7 дней, вы можете ограничить только 3 программного обеспечения (когда оно решит работать), и это стоит огромных 50 долларов за полный сервис. Даже не беспокойся.

Ответы:

21

Я использую Net Limiter , у которого есть бесплатная версия, но, к сожалению, вам придется заплатить за функцию ограничения .

NetLimiter - это инструмент для контроля и мониторинга интернет-трафика, разработанный для Windows. Вы можете использовать NetLimiter, чтобы установить ограничения скорости загрузки / выгрузки для приложений или даже одного соединения и контролировать их интернет-трафик.

Наряду с этой уникальной функцией, Netlimiter предлагает полный набор инструментов для интернет-статистики. Включает измерение трафика в реальном времени и долгосрочную статистику интернет-трафика для каждого приложения

пользователь
источник
8
Нет, версии Lite / Pro, которые позволяют ограничивать трафик, не являются бесплатными.
демонкорю
Этот, напротив , неплохо работает на Windows XP.
GSerg
NetLimiter 4 по-прежнему имеет ограниченную функциональность, и он находится в бесплатной версии, но ограничен по времени.
Дэн Аткинсон
9

Есть веские причины взглянуть на подход «Интернет-маршрутизатор» для управления сетью в целом - однако, поскольку исходный вопрос был конкретным, и пользователь вполне может быть единственным компьютером в сети, это вторичная проблема.

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, которая может быть непреднамеренно ограничена. Теперь мое блестящее новое правило стало бесполезным и нарушенным.

zaTricky
источник
Я не уверен, что бесплатная версия NetBalancer все еще допускает ограничение пропускной способности. Цитируя страницу загрузки : «Незарегистрированная версия работает только как приложение для мониторинга и не поддерживает никаких приоритетов или правил».
Гра Дабл
Вздох. Любопытно сейчас о том, когда это изменилось. Я не устанавливал Origin с тех пор, как последний раз «обновлял» свой игровой компьютер.
zaTricky
2

Вот душит мой бедняк:

Это не точно ограничивает полосу пропускания, а скорее приостанавливает / возобновляет процесс использования полосы пропускания и, таким образом, освобождает некоторую полосу пропускания для других приложений. И это бесплатно!

Вам нужен 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 на имя вашей программы)

bebbo
источник
Это на самом деле не решает проблему. Это одно исправление процесса, вы должны знать процесс, который увеличивает пропускную способность, и вы не должны активно его использовать.
Дэн Аткинсон
1
Если вы хотите «ограничить пропускную способность запущенного процесса» (вот в чем вопрос), вы знаете процесс, верно? И мои процессы, которые потребляют всю полосу пропускания, особенно загружаются (делает мой интернет не пригодным для использования ни для чего другого) и, возможно, также загружаются. Мой «душит беднягу» делает свою работу: я могу загружать и все еще пользоваться Интернетом. И да - это не идеальное решение. Это для бедняков, а не для покупки программного обеспечения.
Биббо
1
Я должен согласиться с @ дан-аткинсон. NetBalancer - хороший пример, когда бесплатная версия будет отлично работать в том же сценарии использования, что и эта. Этот метод также имеет ограничения: - Требуются громоздкие / ручные действия - Нет способа указать, каким должно быть ограничение полосы пропускания. - Этот метод может просто сместить «стабильное» нежелательное использование в менее желательные пики и впадины. - Приложение перестает отвечать на
запросы
Вундеркинд во мне задается вопросом, может ли это быть действительно хорошим и дешевым способом добиться цели, но с гораздо меньшим временем ожидания, например, 50 мс. Таким образом, было бы много приостановки / приостановки, но опыт мог бы быть более плавным. Я не знаю, как время в приостановке фактически намечается к уменьшенной скорости загрузки, но это - кое-что, чтобы поэкспериментировать с ...
pgr
1

Вы можете использовать групповую политику Windows для регулирования пропускной способности любого процесса. Перейти к:

  • Пуск> Пуск> gpedit.msc
  • Конфигурация компьютера / пользователя (выберите один или другой)> Настройки Windows> QoS на основе политик

Здесь вы можете увидеть текущие политики и создать новые:

  • Либо щелкните правой кнопкой мыши «QoS на основе политик», либо выберите «Действие»> Создать новую политику ...
  • Затем следуйте указаниям мастера, чтобы создать новую политику регулирования.

Мастер позволяет вам создать политику регулирования пропускной способности для:

  • Все на вашем компьютере
  • Конкретные процессы
  • Специальные веб-сайты (только для приложений, использующих протоколы HTTP)

И ваши политики могут быть отфильтрованы по:

  • Протоколы TCP или UDP
  • IP источника / назначения
  • Порты источника / назначения

Вы также можете создать эти политики в Powershell , запустив:

New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB

Хотя для этого могут потребоваться права администратора, и, похоже, существует ошибка, из-за которой созданные политики не отображаются в графическом интерфейсе.

Silveri
источник