optimal for <productname>PostgreSQL</productname>. Because of the
way that the kernel implements memory overcommit, the kernel might
terminate the <productname>PostgreSQL</productname> postmaster (the
- master server process) if the memory demands of
- another process cause the system to run out of virtual memory.
+ master server process) if the memory demands of either
+ <productname>PostgreSQL</productname> or another process cause the
+ system to run out of virtual memory.
</para>
<para>
swap space are exhausted.
</para>
+ <para>
+ If <productname>PostgreSQL</productname> itself is the cause of the
+ system running out of memory, you can avoid the problem by changing
+ your configuration. In some cases, it may help to lower memory-related
+ configuration parameters, particularly
+ <link linkend="guc-shared-buffers"><varname>shared_buffers</></link>
+ and <link linkend="guc-work-mem"><varname>work_mem</></link>. In
+ other cases, the problem may be caused by allowing too many connections
+ to the database server itself. In many cases, it may be better to reduce
+ <link linkend="guc-max-connections"><varname>max_connections</></link>
+ and instead make use of external connection-pooling software.
+ </para>
+
<para>
On Linux 2.6 and later, it is possible to modify the
kernel's behavior so that it will not <quote>overcommit</> memory.