Messages in this thread | | | Date | Wed, 23 Jan 2008 14:54:17 +0530 | From | Balbir Singh <> | Subject | Re: [RFC] [PATCH] cgroup: limit network bandwidth |
| |
* Andrea Righi <righiandr@users.sourceforge.net> [2008-01-23 10:09:28]:
> Allow to limit the network bandwidth for specific process containers (cgroups) > imposing additional delays in the sockets' sendmsg()/recvmsg() calls made by > those processes that exceed the limits defined in the control group filesystem. > > Example: > # mkdir /dev/cgroup > # mount -t cgroup -onet net /dev/cgroup > # cd /dev/cgroup > # mkdir foo > --> the cgroup foo has been created > # /bin/echo $$ > foo/tasks > # /bin/echo 1024 > foo/net.tcp > # /bin/echo 2048 > foo/net.tot > # sh > --> the subshell 'sh' is running in cgroup "foo" that has a maximum network > bandwidth for TCP traffic of 1MB/s and 2MB/s for total network > activities. > > The netlimit approach can be easily extended to support additional network > protocols or different socket families or types (PF_UNIX, PF_BLUETOOTH, > SOCK_SEQPACKET, etc.). > > Signed-off-by: Andrea Righi <a.righi@cineca.it>
Hi, Andrea,
I took a quick look at the patches and it looks like we throttle network (by forcing a schedule_timeout()), if we exceed our bandwidth limit. That is one way of doing it, but it has some disadvantages, it does not scale to
1. Implementation of soft limits (limit on contention of resource) gets harder 2. Why dont use the existing infrastructure for bandwidth limitation for implementing the network controller?
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
| |