[lkml]   [2012]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFD] cgroup: about multiple hierarchies
    On Thu, Feb 23, 2012 at 10:41:34AM +0100, Peter Zijlstra wrote:
    > On Wed, 2012-02-22 at 11:57 -0500, Vivek Goyal wrote:
    > >
    > > Again, it does not mean I am advocating flat hiearchy. I am just wondering
    > > in case of fully nested hierarchies (task at same level as groups), how
    > > does one explain it to a layman user who understands things in terms of
    > > % of resources.
    > If your complete control is % based then I would assume its a % of a %.
    > Simple enough.

    But % of % will vary dynamically and not be static. So if root has got
    100% of resources and we want 25% of that for a group, then hierarchy
    might look as follows.

    / | \
    T1 T2 g1

    T1, T2 are tasks and g1 is the group needing 25% of root's resources. Now
    number of tasks running in parallel to g1 will determine its effective %
    and tasks come and go. So the only way to do this would be that move T1
    and T2 in a child group under root and make sure new tasks don't show up
    in root.

    Otherwise creating a group under root does not ensure that you get minimum
    % of resource. It just makes sure that you can't get more than 25% of
    % resources when things are tight.

    > If its bandwidth based then simply don't allow a child to consume more
    > bandwidth than its parent, also simple.

    In case of absolute limit, things are somewhat simpler. A group is not impacted
    by its peer tasks/groups that much. Well, there is also an issue and that
    is how do all the children of a group share the resources. So assume

    / | \
    T1 T2 g2

    Assume g1 has 100MB/s limit and g2 has 90MB/s limit too. Now how this
    100MB/s is divided among T1, T2 and g2? Round robin or do proportional
    division based on weights. I think for cpu scheduler it can do
    proportional division as everything is implemented in single layer. For
    blkio, trottling is stacked on top of proportional. So I guess, I can
    do round robin between T1, T2 and g2 and also make sure total of T1, T2
    and g2 does not cross g1's bandwidth.

    So upper limit is not that big a issue. Proportional one does become
    one with effective % varying dynamically.


     \ /
      Last update: 2012-02-23 22:41    [W:0.021 / U:0.640 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site