doc patch - linux memory handling - Mailing list pgsql-patches
From | Andrew Dunstan |
---|---|
Subject | doc patch - linux memory handling |
Date | |
Msg-id | 3F4621E0.2020308@dunslane.net Whole thread Raw |
Responses |
Re: doc patch - linux memory handling
Re: doc patch - linux memory handling |
List | pgsql-patches |
As discussed on Hackers. enjoy andrew Index: doc/src/sgml/runtime.sgml =================================================================== RCS file: /projects/cvsroot/pgsql-server/doc/src/sgml/runtime.sgml,v retrieving revision 1.200 diff -c -w -r1.200 runtime.sgml *** doc/src/sgml/runtime.sgml 17 Aug 2003 22:19:10 -0000 1.200 --- doc/src/sgml/runtime.sgml 21 Aug 2003 16:57:43 -0000 *************** *** 3068,3081 **** </para> <para> ! Linux has poor default memory overcommit behavior. Rather than ! failing if it can not reserve enough memory, it returns success, ! but later fails when the memory can't be mapped and terminates ! the application with <literal>kill -9</>. To prevent unpredictable ! process termination, use: <programlisting> sysctl -w vm.overcommit_memory=3 </programlisting> Note, you will need enough swap space to cover all your memory needs. </para> </listitem> --- 3068,3125 ---- </para> <para> ! Linux kernel version 2.4.* has poor default memory overcommit ! behavior, which can result in the postmaster being killed by the ! kernel due to memory demands by another process if the system ! runs out of memory. ! </para> ! ! <para> ! The symptom of this occuring is a kernel message looking like ! this (consult your system documentation and configuration on ! where to look for such a message): ! <programlisting> ! Out of Memory: Killed process 12345 (postmaster). ! </programlisting> ! </para> ! ! <para> ! To avoid this situation, run postgres on a machine where you ! can be sure that other processes will not run the machine out ! of memory. If your kernel supports strict and/or paranoid modes ! of overcommit handling, you can also relieve this problem by ! altering the system's default behaviour. This can be determined ! by examining the function <varname>vm_enough_memory</> ! in the file <filename>mm/mmap.c</>in the kernel source. ! If this file reveals that strict and/or paranoid modes are ! supported by your kernel, turn one of these modes on by using ! <programlisting> ! sysctl -w vm.overcommit_memory=2 ! </programlisting> ! for strict mode or <programlisting> sysctl -w vm.overcommit_memory=3 </programlisting> + for paranoid mode, or placing an equivalent entry in + <filename>/etc/sysctl.conf</>. + </para> + + <para> + Warning: using these settings in a kernel which does not support + these modes will almost certainly increase the danger of the + kernel killing the postmaster, rather than reducing it. + If in any doubt, consult a kernel expert or your kernel vendor. + </para> + + <para> + These modes are expected to be supported in all 2.6 and later + kernels. Some vendor 2.4 kernels may also support these modes. + However, it is known that some vendor documents suggest that + they support them while examination of the kernel source reveals + that they do not. + </para> + + <para> Note, you will need enough swap space to cover all your memory needs. </para> </listitem>
pgsql-patches by date: