Messages in this thread Patch in this message | | | From | Jan-Frode Myklebust <> | Subject | Re: Linux killed Kenny, bastard! | Date | Tue, 13 Jan 2009 14:41:01 +0100 |
| |
On 2009-01-13, David Rientjes <rientjes@google.com> wrote: > > When a memory-hogging task is identified, which you have complete control > over in userspace by tuning /proc/pid/oom_adj, it attempts to kill a child > first if it will allow for memory freeing without killing the parent.
So an alternative to Evgeniy Polyakov's patch would be:
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index d105eb4..5dcfc88 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt @@ -2311,10 +2311,19 @@ increase the likelihood of this process being killed by the oom-killer. Valid values are in the range -16 to +15, plus the special value -17, which disables oom-killing altogether for this process. +Child processes will inherit the parent oom_score, so to launch a potential +rouge process that you want to be the primary target of the oom-killer, that +can be done by adjusting the score of the parent process, before launching the +potential rouge process. F.ex. to make sure the process "Kenny" will be a +prime candidate to get killed: + + echo 15 > /proc/self/oom_adj + ./Kenny + echo -15 > /proc/self/oom_adj + 2.13 /proc/<pid>/oom_score - Display current oom-killer score ------------------------------------------------------------- ------------------------------------------------------------------------------- This file can be used to check the current score used by the oom-killer is for any given <pid>. Use it together with /proc/<pid>/oom_adj to tune which process should be killed in an out-of-memory situation.
| |