如何限制在 Linux 中运行的具体应用程序的网络使用?

如何限制在 Linux 中运行的具体应用程序的网络使用?

我正在寻找适合 CPU 的东西,但对于网络使用来说,它将限制应用程序网络消耗到可以配置的水平。

xapian-replicate-server 占用了我 80% 的网络资源,这导致 mysql 连接出现问题(mysql 服务器也在这台机器上运行)。我无法将 xapian 或 mysql 移到其他机器,因此我需要将 xapian 网络使用率限制在一个合适的水平。

有什么工具可以帮助我做到这一点?

答案1

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 创建一个新的 cgroup,并为其提供总计 2048 千字节/秒的 TCP 流量带宽和总计 4096 千字节/秒的网络流量带宽。

答案2

似乎“涓流”可以为你工作:http://monkey.org/~marius/trickle/

相关内容