lkml.org 
[lkml]   [2009]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [RFC] [PATCH] Cgroup based OOM killer controller
    Date
    On Thursday 22 January 2009 02:19:50 David Rientjes wrote:
    > On Wed, 21 Jan 2009, Nikanth Karthikesan wrote:
    > > This is a container group based approach to override the oom killer
    > > selection without losing all the benefits of the current oom killer
    > > heuristics and oom_adj interface.
    > >
    > > It adds a tunable oom.victim to the oom cgroup. The oom killer will kill
    > > the process using the usual badness value but only within the cgroup with
    > > the maximum value for oom.victim before killing any process from a cgroup
    > > with a lesser oom.victim number. Oom killing could be disabled by setting
    > > oom.victim=0.
    >
    > This doesn't help in memcg or cpuset constrained oom conditions, which
    > still go through select_bad_process().
    >
    > If the oom.victim value is high for a specific cgroup and a memory
    > controller oom occurs in a disjoint cgroup, for example, it's possible to
    > needlessly kill tasks. Obviously that is up to the administrator to
    > configure, but may not be his or her desire for system-wide oom
    > conditions.
    >
    > It may be preferred to kill tasks in a specific cgroup first when the
    > entire system is out of memory or kill tasks within a cgroup attached to a
    > memory controller when it is oom.
    >
    > The same scenario applies for cpuset-constrained ooms. Since oom.victim
    > is given higher preference than all tasks' oom_adj values, it is possible
    > to needlessly kill tasks that do not lead to future memory freeing for the
    > nodes attached to that cpuset.
    >
    > It also requires that you synchronize the oom.victim values amongst your
    > cgroups.

    No, this is not specific to memcg or cpuset cases alone. The same needless
    kills will take place even without memcg or cpuset when an administrator
    specifies a light memory consumer to be killed before a heavy memory user. But
    it is up to the administrator to use it wisely. We also provide a panic_on_oom
    option that an administrator could use, not just to kill few more tasks but
    all tasks in the system ;)

    Thanks
    Nikanth


    \
     
     \ /
      Last update: 2009-01-22 06:17    [W:0.025 / U:2.068 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site