Re: A nice CPU resource controller
From: Balbir Singh
Date: Thu Aug 31 2006 - 02:25:06 EST
Peter Williams wrote:
I do not understand controlling the nice value? Most cpu control the
bandwidth/time - are there any advantages to controlling the nice
value?
Trying to control CPU allocations purely using time allocations will
only work well for CPU bound processes. Furthermore, the faster CPUs
become the more this will be the case.
The resource we are controlling is CPU bandwidth, what other parameters can we
use to control it?. Nice values indirectly control the time a task gets, but
also affects its priority. Even if a task is not CPU bound, we are only
interested in its CPU bandwidth utilization in the CPU resource controller.
How does this interplay with dynamic priorities that the
scheduler currently maintains?
But your implication here is valid. It is better to fiddle with the
dynamic priorities than with nice as this leaves nice for its primary
purpose of enabling the sysadmin to effect the allocation of CPU
resources based on external considerations. Having said that I would
also opine that the basic mechanism this author uses to fiddle the nice
values could be applied to the dynamic priorities instead with the key
difference being that nice can be fiddled from outside the scheduler but
you really need to be inside the scheduler to fiddle with dynamic
priorities.
The problem with controlling nice values that I see is that nice values do not
necessarily linearly map CPU time. Changing the nice value also changes the
priority, which impacts the order in which tasks are run.
It's my belief that time and priorities are orthogonal. Nice does a good job
of trying to mix the two, but in the case of resource management it might not
be such a good idea.
--
Balbir Singh,
Linux Technology Center,
IBM Software Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/