Существует ли какая-либо утилита для ограничения пропускной способности процесса после его запуска? Простой пример: вы отмечаете, что пользователь использует всю пропускную способность загрузки с помощью scp, и вы хотите ограничить скорость передачи или уменьшить приоритет передачи.
Я думаю, что я мог бы использовать комбинацию iptables / tc или pf для достижения этой цели, но мне было интересно, есть ли доступный инструмент "one-shot" (например, струйка с опцией --pid ^^)?
Ответы:
К сожалению, для FreeBSD такого решения не существует. Существует много решений, таких как dummynet / ipfw или altq / pf, которые используются для ограничения использования сети на основе различных шаблонов, но не на pids.
В Linux есть способ ограничить использование сети для пользователей:
Я думаю, что нет решения ограничить использование сети на основе pid.
источник
Процесс получения сетевых портов, которые использует процесс. Как только вы узнаете, какие порты используются, вы можете использовать правила 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
источник
В Linux даже сочетание iptables и tc может быть сложной проблемой, так как опция «--pid-owner» была исключена из модуля iptables «owner» (см. Примечание под таблицей здесь ). На самом деле, только эта ассоциация (пакет-процесс) кажется сложной, в то время как мы можем легко сделать все остальное, то есть фильтровать и ограничивать пакеты довольно эффективно.
источник
Я не думаю, что есть готовое решение для этого. Но, используя стандартные инструменты Linux, вы можете взломать скрипт, который сделает это.
Во-первых, вы можете получить список всех соединений определенного процесса с помощью lsof. Затем вы можете создать входные политики с помощью tc для этих соединений.
источник
Грубо говоря, если вы доведите процесс до +20, то все, что работает в системе, получит приоритет, и задание будет планироваться реже, поэтому будет труднее заполнять буферы или обрабатывать пакеты, что должно привести к некоторому TCP дросселирование. Это будет спорадическим, но может помочь достаточно.
источник