OK, doc patch attached and applied.  Improvements?


Tom Lane wrote:
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > What really kills [:-)] me is that they allocate memory assuming I will
> > not be using it all, then terminate the executable in an unrecoverable
> > way when I go to use the memory.
> To be fair, I'm probably misstating things by referring to malloc().
> The big problem probably comes from fork() with copy-on-write --- the
> kernel has no good way to estimate how much of the shared address space
> will eventually become private modified copies, but it can be forgiven
> for wanting to make less than the worst-case assumption.
> Still, if you are wanting to run a reliable server, I think worst-case
> assumption is exactly what you want.  Swap space is cheap, and there's
> no reason you shouldn't have enough swap to support the worst-case
> situation.  If the swap area goes largely unused, that's fine.
> The policy they're calling "paranoid overcommit" (don't allocate more
> virtual memory than you have swap) is as far as I know the standard on
> all Unixen other than Linux; certainly it's the traditional behavior.
>                       regards, tom lane

  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: doc/src/sgml/runtime.sgml
RCS file: /cvsroot/pgsql-server/doc/src/sgml/runtime.sgml,v
retrieving revision 1.184
diff -c -c -r1.184 runtime.sgml
*** doc/src/sgml/runtime.sgml   11 Jun 2003 22:13:21 -0000      1.184
--- doc/src/sgml/runtime.sgml   12 Jun 2003 15:29:45 -0000
*** 2780,2785 ****
--- 2780,2795 ----
          m.h</> and <filename>/usr/src/linux/include/linux/sem.h</>.
+        <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.  To prevent unpredictable process termination, use:
+ <programlisting>
+ sysctl -w vm.overcommit_memory=3
+ </programlisting>
+        </para>
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?


Reply via email to