web-dev-qa-db-ja.com

Linuxで実行されている具体的なアプリケーションのネットワーク使用を制限するにはどうすればよいですか?

私はCPUにNiceのようなものを探していますが、アプリケーションのネットワーク消費を構成するレベルに制限するネットワークの使用法を探しています。

ネットワークの80%を消費しているxapian-replicate-serverに問題があります。これがmysql接続の問題を引き起こしています(mysqlサーバーもこのマシンで動作しています)。 xapianまたはmysqlを他のマシンに移動できないため、xapianネットワークの使用を適切なレベルに制限する必要があります。

これを行うのに役立つツールはありますか?

5
B14D3

tciptablesなどはすべてこれを行うことができますが、違います。

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キロバイト/秒になります。

8

「トリクル」があなたのために働くかもしれないように思われる: http://monkey.org/~marius/trickle/

2
user8602