[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Stability issues



Mike Robinson wrote:
> >According to this you're running out of memory!? At least the oom-killer 
> >is (disturbingly) active before the reboot, but the messages are pretty 
> >definite: your 2G swap is maxed out. That's bad and will cause all sorts 
> >of problems...
> >This *could* be an unhandled out-of-memory error...
> ...
> I'll try it out and let you know how it goes.  Thanks again!

If this is related to running out of swap then the linux kernel out of
memory kill will become active and will look for processes to kill.
This should be noted in the logs with an "oom" reference.  Adding more
swap space would be advised to avoid the oom.  The oom is, IMNHO,
really nasty and I disable it.  Search the web for linux kernel out of
memory killer and memory overcommit and you will find much discussion
about it.

You might try this following in order to disable linux kernel memory
overcommit.  This will cause malloc() to fail when memory is
exhausted.  (The default is that malloc() and fork() will always
pass.)  This should avoid the linux kernel out of memory killer from
becoming active and killing random processes on the system.  This will
cause only the programs that are asking for more memory to fail.  This
is the traditional Unix memory model.  I recommend configuring servers
that need reliable operation this way.

  sudo sysctl -w vm.overcommit_memory=2

HOWEVER!  If you do not have enough virtual memory / swap space at the
time that you activate this configuration then it may cause your
system to be unable to fork() and malloc() starting at that moment.
If the system becomes unusable due to fork failure you may need to
reboot.  You must have enough virtual memory configured to handle all
of your expected simultaneously running applications.

Since the above is a temporary configuration a reboot will reset to
the default allowing memory overcommit and enabling the out of memory
killer if the system runs out of memory.  If you decide that is a good
configuration to keep it memory overcommit disabled then it may be
configured in /etc/sysctl.conf to be set off at boot time.

Bob



Reply to: