Add more information about avoiding Linux OOM killer.

by Toru SHIMOGAKI
This commit is contained in:
Peter Eisentraut 2007-03-06 09:54:23 +00:00
parent a535cdf130
commit f12f220e5a

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.378 2007/02/16 16:37:29 tgl Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.379 2007/03/06 09:54:23 petere Exp $ -->
<chapter Id="runtime">
<title>Operating System Environment</title>
@ -1201,15 +1201,21 @@ Out of Memory: Killed process 12345 (postgres).
<para>
One way to avoid this problem is to run
<productname>PostgreSQL</productname>
on a machine where you can be sure that other processes will not
run the machine out of memory.
<productname>PostgreSQL</productname> on a machine where you can
be sure that other processes will not run the machine out of
memory. If memory is tight, increasing the swap space of the
operating system can help avoiding the problem, because the
out-of-memory (OOM) killer is invoked whenever physical memory and
swap space are exhausted.
</para>
<para>
On Linux 2.6 and later, a better solution is to modify the kernel's
behavior so that it will not <quote>overcommit</> memory. This is
done by selecting strict overcommit mode via <command>sysctl</command>:
On Linux 2.6 and later, an additional measure is to modify the
kernel's behavior so that it will not <quote>overcommit</> memory.
Although this setting will not prevent the OOM killer from
invoking altogether, it will lower the chances significantly and
will therefore lead to more robust system behavior. This is done
by selecting strict overcommit mode via <command>sysctl</command>:
<programlisting>
sysctl -w vm.overcommit_memory=2
</programlisting>