Re: Improving OOM killer

David Rientjes
2010-02-04T22:14:59Z

On Thu, 4 Feb 2010, Rik van Riel wrote:

> > Keep in mind that we're in the oom killer here, though. So we're out of
> > memory and we need to kill something; should Apache, Oracle, and postgres
> > not be penalized for their cost of running by factoring in something like
> > this?
>
> No, they should not.
>
> The goal of the OOM killer is to kill some process, so the
> system can continue running and automatically become available
> again for whatever workload the system was running.
>
> Killing the parent process of one of the system daemons does
> not achieve that goal, because you now caused a service to no
> longer be available.
>

The system daemon wouldn't be killed, though. You're right that this
heuristic would prefer the system daemon slightly more as a result of the
forkbomb penalty, but the oom killer always attempts to sacrifice a child
with a seperate mm before killing the selected task. Since the forkbomb
heuristic only adds up those children with seperate mms, we're guaranteed
to not kill the daemon itself.