> > Let me explain the cgroup case (the sanest option IMHO): > > initially all your tasks will belong to the root cgroup, eg: > > assuming: > mkdir -p /cgroup/cpu > mount none /cgroup/cpu -t cgroup -o cpu > > Then the root cgroup (cgroup:/) is /cgroup/cpu/ and all tasks will be > found in /cgroup/cpu/tasks. > > You can then create new groups as sibling from this root group, eg: > > cgroup:/foo > cgroup:/bar > > They will get a weigth of 1024 by default, exactly as heavy as a nice 0 > task. > > That means that no matter how many tasks you stuff into foo, their > combined cpu time will be as much as a single tasks in cgroup:/ would > get. > > This is fully recursive, so you can also create: > > cgroup:/foo/bar and its tasks in turn will get as much combined cpu time > as a single task in cgroup:/foo would get. > > In theory this should go on indefinitely, in practise we'll run into > serious numerical issues quite quickly. > > > The USER grouping basically creates a fake root and all uids (including > 0) are its siblings. The only special case is that uid-0 (aka root) will > get twice the weight of the others. > Thank you for your detailed explanation! I have one more question: cgrouping and USER grouping is mutual exclusive, am I right? That is, when enabling cgrouping, USER grouping need to be disabled, vice versa. Thanks, Forrest _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers