diff options
-rw-r--r-- | doc/src/sgml/runtime.sgml | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 36982b748a4..a47c998524d 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1203,8 +1203,9 @@ default:\ 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> @@ -1232,6 +1233,19 @@ Out of Memory: Killed process 12345 (postgres). </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. Although this setting will not prevent the <ulink |