Назад | Перейти на главную страницу

Как ограничить использование сети для конкретного приложения в Linux, которое в нем запущено?

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

У меня проблемы с xapian-replicate-server, который использует 80% моей сети. Это вызывает проблему с подключениями mysql (сервер mysql тоже работает на этой машине). Я не могу перенести xapian или mysql на другую машину, поэтому мне нужно ограничить использование сети xapian до приличного уровня.

Есть ли какой-нибудь инструмент, который поможет мне в этом?

tc, iptables и т. д. могут все это сделать, но просто чтобы отличаться:

Вы можете использовать функцию ядра Linux cgroups и это net_cls модуль для ограничения xapian-replicate-server. Что-то вроде этого должно получиться:

mount -t cgroup -onet net /sys/fs/cgroup
cd /sys/fs/cgroup
mkdir xapian-replicate-server
/bin/echo $$ > xapian-replicate-server/tasks
/bin/echo 2048 > xapian-replicate-server/net.tcp
/bin/echo 4096 > xapian-replicate-server/net.tot
however_you_launch_xapian-replicate-server

Это создаст новую контрольную группу для Xapian и даст ей 2048 килобайт / с пропускной способности TCP-трафика и 4096 килобайт / с общей пропускной способностью сетевого трафика.

Похоже, вам подойдет "струйка": http://monkey.org/~marius/trickle/