[lkml]   [2000]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: What to do when out of memory
> Hi,
> I want to bring up a topic that I have never heard dicussed but have had
> major problems with myself.
> The basic problem is that if I run a program that eats up all the memory
> on the system than the kernel will start swapping crazilly and make the
> system completely unresponsive.
Is this a real problem, or some memory eater you made to make the point?

If you use up real memory then the system does its best by swapping. It
die, jsut slow down. This is usually a graceful process with real-world
programs. Stuff get gradually slower as more meomory is used up.

Now, if you use *way* too much memory then the only solutions
is more memory or fewer programs. There are no other ways, no other
os can save you either.

> It may take a minute or two to get its
> attention,
Definitely, if you swap way too much. Install more RAM or move some
apps to another machine.

> or it may be completely locked up. From what I have seen, this
It is not supposed to lock up, that may be a bug. Or maybe you
are impatient, you may need to wait some more.

> is not acceptable behavior nor is it what I would expect from any
> UNIX-like operating system.
> I know that your first impulse will be to tell me to set PAM's limits.conf
> or a limits option within my shell. I think this is irrelevant. Regardless
> of userspace settings, the kernel should handle OOM situations more
> gracefully than swapping to death. This may be a gross oversimplification

> of the problem (as I have no kernel hacking experience or knowledge), but
> can't the kernel just deny memory allocations if all the memory on the
> system is in use?
Well, that is precisely what the limits is there for. But you refuse to
use them.
Some people need the ability to over-allocate, they need some huge job
to complete even if it takes ages of swapper hell.
Limits exists for those who need the interactive performance, or
from nasty users.

> Maybe there should be a few K of ram that can never be
> allocated into just so the kernel can recover from a situation like this.

You can always do tricks like having root running "top at a very high
priority at some console/terminal. This will usually be responsive
enough, and may be used for killing memory eaters. Note that "top"
isn't enough, it must run with unusually high priority too. Set it to
update often, like twice a second perhaps. It's pages will likely not
swapped out much under these circumstances. Make sure nobody
can get to this console/terminal.

Helge Hafting

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:56    [W:0.027 / U:5.408 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site