On Mon, Jun 13, 2016 at 2:00 AM, <jobi...@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 -- Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs