Ограничение пропускной способности интернета для уже запущенных приложений

11

Этот вопрос похож на этот: Как я могу ограничить пропускную способность интернета? , Но wondershaperи trickleне может ограничивать пропускную способность интернета для уже запущенных приложений. Итак, как я могу ограничить пропускную способность интернета для уже запущенных приложений (но только для одного приложения, а не для всей системы)? :)

kv1dr
источник
1
То, что вы ищете, это ограничитель пропускной способности процесса, который, честно говоря, я потратил около 2 часов на поиск и тестирование одного. Неудачно. Из-за этого я собираюсь поставить здесь награду, потому что я нахожу вопрос очень интересным.
Луис Альварадо
Что ж, для этого поста в Firefox и Chrome отсутствует возможность запустить награду. Оо
Луис Альварадо
Мне трудно поверить, что в Linux нет возможности контролировать пропускную способность определенного процесса, который уже запущен или нет. Есть несколько инструментов, большинство из которых контролируют, но инструменты для формирования, которые делают это, нет. Изменяйте только интерфейс загрузки / выгрузки, но не процесс. Учитывая, что Linux очень силен в сетевом мире, мне трудно это проглотить. Там должен быть вариант.
Луис Альварадо

Ответы:

5

Для общего случая это теоретически возможно в ядре, используя расширение владельца для netfilter. Я вижу эту опцию --pid-ownerна странице руководства iptablesна die.net , но там написано, что она не работает с SMP :(

В моей собственной системе, 10.04, такой опции нет в руководстве :(. Поэтому я считаю, что в этот раз нам не повезло; (. Может быть, в будущем произойдет еще одно воплощение этой --pid-ownerопции. Вершина этого не была бы ракетостроением.

Первый шаг должен быть сделан на самом Linux и iptables.

Что касается более конкретных типов трафика, таких как HTTP. Должны быть способы создания приспособлений с использованием прокси, но, вероятно, потребуется некоторый взлом, потому что этот вариант использования возникает не часто.

H Марсело Моралес
источник
Так что, я думаю, мы еще не можем ограничить пропускную способность интернета для уже запущенных программ.
kv1dr
1

Это не особенно полезно, но единственный способ (насколько я знаю) действительно эффективно ограничить полосу пропускания - это использовать технологию формирования пакетов или организации очередей. Единственный действительно продуманный метод, о котором я знаю, - это линейка приборов PacketShaper, которые теперь принадлежат Bluecoat .

Я не использовал их сам в течение нескольких лет, но я использую прокси Bluecoat ежедневно, поэтому я не отставал от развития диапазона PacketShaper.

Они дорогие, но действительно превосходные в том, что они делают. Они вообще не используют очереди - они динамически манипулируют размером окон TCP, чтобы ограничить пропускную способность в диалоге tcp-pair. В последних выпусках они также поддерживают приложения, так что вы можете сказать «дросселируйте iPlayer и Youtube, но пропустите все остальное».

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

Scaine
источник
1
Я не думаю, что платить за такие вещи - это разумно, когда вы можете получить программное обеспечение для этого.
kv1dr
Лошади на курсы. В корпоративной среде с тысячами пользователей проверенный корпоративный продукт - ваш единственный выбор. Предполагая, что вы хотите сохранить свою работу такой, какая есть. QoS на основе очередей, как правило, очень плохая реализация, поэтому мой ответ выдвигает на первый план альтернативу. Это, и как было отмечено выше, мы не можем получить программное обеспечение для этого.
Scaine