Thread: Regarding Overcommit

Regarding Overcommit

From
jobinau@gmail.com
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.2/static/kernel-resources.html
Description:

Documentation says:

sysctl -w vm.overcommit_memory=2

"it will lower the chances significantly and will therefore lead to more
robust system behavior."

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.

Re: Regarding Overcommit

From
Kevin Grittner
Date:
On Mon, Jun 13, 2016 at 2:00 AM,  <jobinau@gmail.com> wrote:

> Documentation says:
>
> sysctl -w vm.overcommit_memory=2
>
> "it will lower the chances significantly and will therefore lead to more
> robust system behavior."
>
> 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