public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <zbr@ioremap.net>
To: David Rientjes <rientjes@google.com>
Cc: Bill Davidsen <davidsen@tmr.com>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: Linux killed Kenny, bastard!
Date: Tue, 13 Jan 2009 11:52:44 +0300	[thread overview]
Message-ID: <20090113085244.GA13796@ioremap.net> (raw)
In-Reply-To: <alpine.DEB.2.00.0901121746220.20329@chino.kir.corp.google.com>

On Mon, Jan 12, 2009 at 05:53:47PM -0800, David Rientjes (rientjes@google.com) wrote:
> On Tue, 13 Jan 2009, Evgeniy Polyakov wrote:
> 
> > Like anything that spawns a thread or process per request/client, or
> > preallocates set of them which connect to the huge object like database.
> > Most of the time database/server is killed first instead of comparably
> > small clients.
> 
> No, the reverse is true: when a task is chosen for oom kill based on the 
> badness heuristic, the oom killer first attempts to kill any child task 
> that isn't attached to the same mm.  If the child shares an mm, both tasks 
> must die before memory freeing can occur.

It is a theory, not a practice. OOM-killer most of time starts from ssh,
database and lighttpd on the tested machines, when it could start in
the reverse order and do not touch ssh at all. Better not from daemon
itself, but its fastcgi spawned processes.

> > In some cases it is possible to tune the environment, in
> > others it is not that simple. This patch works for such situatons
> > perfectly and does not require additional administrative burden, since
> > it does not make thinge worse as a whole, but only better for the very
> > commonly used cases, that's why I propose it for inclusion.
> > 
> 
> It's an inappropriate addition since /proc/pid/oom_adj scores exist which 
> can prefer or protect certain tasks over others when the oom killer 
> chooses a target, including oom kill immunity.  These scores are inherited 
> from parent tasks and can be tuned after the fork to your oom kill target 
> preference.

I agree, that there are ways to tune the way oom-killer selects the
victim, and likely after hours of games this subtly will work for the
specified workload. What I propose is the simplest way for the most
commonly used case. It is a help for the admin and not the force to
invent complex machinery which will be error-prone and hard to debug
when eventually oom happens. This will work, but it is way more complex
than what I propose, without immediately visible net effects on other
parts of the originally balanced system.

-- 
	Evgeniy Polyakov

  reply	other threads:[~2009-01-13  8:52 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-12 15:33 Linux killed Kenny, bastard! Evgeniy Polyakov
2009-01-12 15:44 ` Dave Jones
2009-01-12 15:48   ` Evgeniy Polyakov
2009-01-12 15:51     ` Alan Cox
2009-01-12 15:52       ` Evgeniy Polyakov
2009-01-12 21:29         ` Chris Snook
2009-01-12 21:42           ` Evgeniy Polyakov
2009-01-13 13:52       ` [why oom_adj does not work] " Evgeniy Polyakov
2009-01-13 14:06         ` Alan Cox
2009-01-13 14:24           ` Evgeniy Polyakov
2009-01-13 15:00             ` Balbir Singh
2009-01-13 15:21               ` Evgeniy Polyakov
2009-01-13 18:04                 ` Valdis.Kletnieks
2009-01-13 19:46                 ` David Rientjes
2009-01-13 21:33                   ` Evgeniy Polyakov
2009-01-13 21:39                     ` David Rientjes
2009-01-13 22:05                       ` Evgeniy Polyakov
2009-01-14 16:12                       ` OOM documentation update [was: Linux killed Kenny, bastard!] Evgeniy Polyakov
2009-01-14 17:06                         ` [take2] " Evgeniy Polyakov
2009-01-14 21:34                           ` Randy Dunlap
2009-01-14 21:53                           ` Bryan Donlan
2009-01-14 22:10                             ` Evgeniy Polyakov
2009-01-14 22:14                             ` [take3] " Evgeniy Polyakov
2009-01-15  0:58                               ` David Rientjes
2009-01-15  8:51                                 ` Evgeniy Polyakov
2009-01-15  8:57                                 ` [take4] " Evgeniy Polyakov
2009-01-15 11:13                                   ` David Rientjes
2009-01-12 15:49 ` Linux killed Kenny, bastard! Alan Cox
2009-01-12 15:50   ` Evgeniy Polyakov
2009-01-12 15:52     ` Alan Cox
2009-01-12 15:56       ` Evgeniy Polyakov
2009-01-12 16:19         ` Alan Cox
2009-01-12 16:29           ` Evgeniy Polyakov
2009-01-12 23:00             ` Bill Davidsen
2009-01-12 23:17               ` Evgeniy Polyakov
2009-01-13  1:53                 ` David Rientjes
2009-01-13  8:52                   ` Evgeniy Polyakov [this message]
2009-01-13  9:54                     ` David Rientjes
2009-01-13 11:54                       ` Evgeniy Polyakov
2009-01-13 12:15                         ` Alan Cox
2009-01-13 12:29                           ` Evgeniy Polyakov
2009-01-13 13:19                             ` Theodore Tso
2009-01-13 13:35                               ` Evgeniy Polyakov
2009-01-14  0:24                                 ` Bill Davidsen
2009-01-14  0:35                                   ` Evgeniy Polyakov
2009-01-13 13:47                               ` Alan Cox
2009-01-13 19:36                             ` David Rientjes
2009-01-13 21:46                               ` Evgeniy Polyakov
2009-01-13 22:49                                 ` Theodore Tso
2009-01-13 23:02                                   ` Evgeniy Polyakov
2009-01-14  1:11                                     ` Theodore Tso
2009-01-14  1:20                                       ` Evgeniy Polyakov
2009-01-14  4:06                                         ` Theodore Tso
2009-01-13 23:10                                 ` David Rientjes
2009-01-13 23:35                                   ` Evgeniy Polyakov
2009-01-13 23:43                                     ` David Rientjes
2009-01-13 23:55                                       ` Evgeniy Polyakov
2009-01-14  0:32                                         ` David Rientjes
2009-01-14  0:53                                           ` Evgeniy Polyakov
2009-01-14  4:23                                     ` Valdis.Kletnieks
2009-01-14  9:07                                       ` Evgeniy Polyakov
2009-01-13 19:15                         ` David Rientjes
2009-01-13 22:00                           ` Evgeniy Polyakov
2009-01-13 23:26                         ` Valdis.Kletnieks
2009-01-13 23:36                           ` Evgeniy Polyakov
2009-01-13 13:41                       ` Jan-Frode Myklebust
2009-01-13 13:59                         ` Alan Cox
2009-01-12 16:22         ` Dave Jones
2009-01-12 16:28           ` Evgeniy Polyakov
2009-01-13 16:35 ` KOSAKI Motohiro
2009-01-13 22:04   ` Evgeniy Polyakov
  -- strict thread matches above, loose matches on Subject: below --
2009-01-13 10:58 Tomasz Chmielewski
2009-01-13 12:20 ` Evgeniy Polyakov
     [not found] <bTxPW-1lH-13@gated-at.bofh.it>
     [not found] ` <bTE53-5LJ-13@gated-at.bofh.it>
     [not found]   ` <bTEeI-5Y0-15@gated-at.bofh.it>
     [not found]     ` <bTGTe-1K5-3@gated-at.bofh.it>
     [not found]       ` <bTNi6-3kb-9@gated-at.bofh.it>
     [not found]         ` <bTOea-4QT-1@gated-at.bofh.it>
     [not found]           ` <bTQ6f-7Qs-1@gated-at.bofh.it>
     [not found]             ` <bTQpv-5o-3@gated-at.bofh.it>
     [not found]               ` <bTQzd-iK-5@gated-at.bofh.it>
     [not found]                 ` <bTXhp-2IA-31@gated-at.bofh.it>
     [not found]                   ` <bTZjb-62D-25@gated-at.bofh.it>
2009-01-17 15:21                     ` Bodo Eggert
2009-01-17 15:41                       ` Evgeniy Polyakov
2009-01-18 12:49                         ` Bodo Eggert
2009-01-18 13:17                           ` Evgeniy Polyakov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090113085244.GA13796@ioremap.net \
    --to=zbr@ioremap.net \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=davidsen@tmr.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rientjes@google.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox