* Avoiding crash in out-of-memory situations
@ 2009-09-01 13:24 Lasse Kärkkäinen
2009-09-02 1:11 ` KAMEZAWA Hiroyuki
0 siblings, 1 reply; 2+ messages in thread
From: Lasse Kärkkäinen @ 2009-09-01 13:24 UTC (permalink / raw)
To: linux-kernel
Currently a number of simple while (1) malloc(n); processes can crash a
system even if resource limits are in place as one can only limit the
memory usage of a process (not that of an user nor the total used by the
userspace) and any otherwise reasonable nproc and memory limits can be
circumvented by using more processes.
The OOM killer is supposed to work as a fallback in these situations,
but unfortunately the system still goes absolutely unresponsive for
about 10 minutes whenever the OOM killer runs. It would seem that this
happens because the kernel first gets rid of all buffers and caches,
slowing things down to a halt, and the OOM killer activates only after
nothing else can be done.
In a more complex situation (e.g. the one that we just had on our server
by accidentally running too many valgrind processes) this hang state can
take very long, essentially requiring the server to be reseted the hard way.
As there AFAIK is no existing remedy to this problem, I would suggest
implementing either (a) per-user limits, (b) a memory reserve for the
kernel (e.g. one could reserve 100 MB for the kernel/buffers/caches,
giving less for the userspace to allocate even if that means having to
kill processes) or (c) both of them.
Or perhaps there is something that I missed?
P.S. using or not using swap doesn't really affect the fundamental
problem nor its symptoms, so please don't suggest that either way.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Avoiding crash in out-of-memory situations
2009-09-01 13:24 Avoiding crash in out-of-memory situations Lasse Kärkkäinen
@ 2009-09-02 1:11 ` KAMEZAWA Hiroyuki
0 siblings, 0 replies; 2+ messages in thread
From: KAMEZAWA Hiroyuki @ 2009-09-02 1:11 UTC (permalink / raw)
To: Lasse Kärkkäinen; +Cc: linux-kernel
On Tue, 01 Sep 2009 16:24:09 +0300
Lasse Kärkkäinen <tronic+bpsk@trn.iki.fi> wrote:
> Currently a number of simple while (1) malloc(n); processes can crash a
> system even if resource limits are in place as one can only limit the
> memory usage of a process (not that of an user nor the total used by the
> userspace) and any otherwise reasonable nproc and memory limits can be
> circumvented by using more processes.
>
> The OOM killer is supposed to work as a fallback in these situations,
> but unfortunately the system still goes absolutely unresponsive for
> about 10 minutes whenever the OOM killer runs. It would seem that this
> happens because the kernel first gets rid of all buffers and caches,
> slowing things down to a halt, and the OOM killer activates only after
> nothing else can be done.
>
> In a more complex situation (e.g. the one that we just had on our server
> by accidentally running too many valgrind processes) this hang state can
> take very long, essentially requiring the server to be reseted the hard way.
>
> As there AFAIK is no existing remedy to this problem, I would suggest
> implementing either (a) per-user limits, (b) a memory reserve for the
> kernel (e.g. one could reserve 100 MB for the kernel/buffers/caches,
> giving less for the userspace to allocate even if that means having to
> kill processes) or (c) both of them.
>
> Or perhaps there is something that I missed?
>
if per-user limit is allowed, memory cgroup ?
Documentation/cgroups/memory.txt
thx,
-Kame
> P.S. using or not using swap doesn't really affect the fundamental
> problem nor its symptoms, so please don't suggest that either way.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-09-02 1:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-01 13:24 Avoiding crash in out-of-memory situations Lasse Kärkkäinen
2009-09-02 1:11 ` KAMEZAWA Hiroyuki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox