6

I'm looking for something like nice for cpu, but for network usage that will limit application network consumption to level that will configure.

I have problems with xapian-replicate-server that is consuming 80 % of my network. It's causing mysql connections problem (mysql server is working on this machine too). I can't move xapian or mysql to other machine so i need to limit xapian network usage to a decent level.

Is there any tool that will help me do this ?

cwarden
  • 145
  • 4
B14D3
  • 5,110
  • 13
  • 58
  • 82

2 Answers2

9

tc, iptables etc can all do this, but just to be different:

You can use Linux kernel feature cgroups and its net_cls module for limiting xapian-replicate-server. Something like this should do:

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

This would create a new cgroup for Xapian and give it total of 2048 kilobytes/s TCP traffic bandwidth and 4096 kilobytes/s of total whatever network traffic bandwidth.

Janne Pikkarainen
  • 31,454
  • 4
  • 56
  • 78
2

Seems like "trickle" could work for you: http://monkey.org/~marius/trickle/