On Wed, Nov 01, 2006 at 03:37:12PM -0800, Paul Menage wrote:
> I saw your example, but can you give a concrete example of a situation
> when you might want to do that?
Paul,
Firstly, after some more thought on this, we can use your current
proposal, if it makes the implementation simpler.
Secondly, regarding how separate grouping per-resource *maybe* usefull,
consider this scenario.
A large university server has various users - students, professors,
system tasks etc. The resource planning for this server could be on these lines:
CPU : Top cpuset
/ \
CPUSet1 CPUSet2
| |
(Profs) (Students)
In addition (system tasks) are attached to topcpuset (so
that they can run anywhere) with a limit of 20%
Memory : Professors (50%), students (30%), system (20%)
Disk : Prof (50%), students (30%), system (20%)
Network : WWW browsing (20%), Network File System (60%), others (20%)
/ \
Prof (15%) students (5%)
Browsers like firefox/lynx go into the WWW network class, while (k)nfsd go
into NFS network class.
At the same time firefox/lynx will share an appropriate CPU/Memory class
depending on who launched it (prof/student).
If we had the ability to write pids directly to these resource classes,
then admin can easily setup a script which receives exec notifications
and depending on who is launching the browser he can
# echo browser_pid > approp_resource_class
With your proposal, he now would have to create a separate container for
every browser launched and associate it with approp network and other
resource class. This may lead to proliferation of such containers.
Also lets say that the administrator would like to give enhanced network
access temporarily to a student's browser (since it is night and the user
wants to do online gaming :) OR give one of the students simulation
apps enhanced CPU power,
With ability to write pids directly to resource classes, its just a
matter of :
# echo pid > new_cpu/network_class
(after some time)
# echo pid > old_cpu/network_class
Without this ability, he will have to split the container into a
separate one and then associate the container with the new resource
classes.