Ограничение сетевой пропускной способности уже запущенного процесса? (Linux/FreeBSD)

Вы определили точно, что Вы искали, я думаю. Тот ключ реестра является способом, которым Hyper-V дает Вам информацию о хост-машине.

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

10
задан 30 December 2010 в 00:01
5 ответов

К сожалению, нет такого решения для FreeBSD. Существует много решений как dummynet/ipfw или altq/pf, которые используются для ограничения использования сети на основе различных шаблонов, но не на pids.

На Linux существует способ ограничить использование сети на пользовательской основе:

iptables -t mangle -A OUTPUT -p tcp -m owner --uid-owner test -j MARK --set-mark 1

Я думаю, что нет никакого решения ограничить использование сети на основе pid.

3
ответ дан 2 December 2019 в 22:14

В Linux даже комбинация iptables и tc могла быть тяжелой проблемой, начиная с "-от изодромного с предварением владельца" опция отказались от "владельца" iptables модуль (см. примечание ниже таблицы здесь). На самом деле только эта ассоциация (пакет - процесс), кажется, является сложной, в то время как мы можем легко сделать остальных, т.е. отфильтровать и ограничить пакеты вполне эффективно.

0
ответ дан 2 December 2019 в 22:14

Я не думаю, что существует готовое решение для этого. Но, с помощью стандартных инструментов Linux можно взломать сценарий, который сделает вещь.

Во-первых, можно получить список всех соединений определенного процесса с lsof. Затем можно создать входные политики с tc для тех соединений.

0
ответ дан 2 December 2019 в 22:14

Грубо, если Вы хороший процесс вниз к +20, затем что-либо еще работающее на системе получит приоритет, и задание будет планироваться менее часто, так найдет, что он тяжелее заполняет буферы или пакеты процесса, которые должны привести к некоторой регулировке TCP. Это будет спорадически, но могло бы помочь достаточно.

# renice 20 -p $pid
0
ответ дан 2 December 2019 в 22:14

lsof процесс для получения сетевых портов, которые использует proc. После того как Вы знаете, какие порты используются, можно использовать правила IPTABLES для ограничения скорости эти порты. Эти статьи должны дать Вам лучшее представление: http://linux-ip.net/articles/Traffic-Control-HOWTO/ http://blog.edseek.com/~jasonb/articles/traffic_shaping/ http://wikis.sun.com/pages/viewpage.action?pageId=49906332

1
ответ дан 2 December 2019 в 22:14

Теги

Похожие вопросы