On Mon, Jun 13, 2016 at 2:00 AM,  <jobi...@gmail.com> wrote:

> Documentation says:
>
> sysctl -w vm.overcommit_memory=2
>
> &quot;it will lower the chances significantly and will therefore lead to more
> robust system behavior.&quot;
>
> This statement in documentation is Wrong.
>
> This is not recommended for production environments, because if an
> out-of-memory condition does present itself, there could be unexpected
> behavior.

It is wrong for some types of production environments, but for a
server where the only (or primary) service is PostgreSQL it is
absolutely Right.  Without this, an out-of-memory condition which
cancels any database process causes a crash and restart of all
connections without necessarily giving any useful clues as to the
cause of the crash.  With vm.overcommit_memory = 2 it will
generally yield an error on only the one connection causing the
problem, and provide a detailed dump of memory contexts (with
allocated space in each).  Other connections are generally
unaffected and the cause of the problem can be fixed to prevent
recurrence.

--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs

Reply via email to