Messages in this thread | | | Date | Fri, 26 May 2006 18:11:49 +0200 | From | Björn Steinbrink <> | Subject | Re: [RFC 0/5] sched: Add CPU rate caps |
| |
On 2006.05.26 10:04:20 +0200, Mike Galbraith wrote: > On Fri, 2006-05-26 at 14:20 +1000, Peter Williams wrote: > > These patches implement CPU usage rate limits for tasks. > > > > Although the rlimit mechanism already has a CPU usage limit (RLIMIT_CPU) > > it is a total usage limit and therefore (to my mind) not very useful. > > These patches provide an alternative whereby the (recent) average CPU > > usage rate of a task can be limited to a (per task) specified proportion > > of a single CPU's capacity. > > The killer problem I see with this approach is that it doesn't address > the divide and conquer problem. If a task is capped, and forks off > workers, each worker inherits the total cap, effectively extending same. > > IMHO, per task resource management is too severely limited in it's > usefulness, because jobs are what need managing, and they're seldom > single threaded. In order to use per task limits to manage any given > job, you have to both know the number of components, and manually > distribute resources to each component of the job. If a job has a > dynamic number of components, it becomes impossible to manage.
Linux-VServer uses a token bucket scheduler (TBS) to limit cpu ressources for processes in a "context". All processes in a context share one token bucket, which has a set of parameters to tune scheduling behaviour. As the token bucket is shared by a group of processes, and inherited by child processes/threads, management is quite easy. And the parameters can be tuned to allow different scheduling behaviours, like allowing a process group to burst, ie. use as much cpu time as is available, after being idle for some time, but being limited to X % cpu time on average.
I'm CC'ing Herbert and Sam on this as they can explain the whole thing a lot better and I'm not familiar with implementation details.
Regards Björn - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |