From: Bruce Momjian Date: Mon, 24 Feb 2014 18:04:51 +0000 (-0500) Subject: Increase work_mem and maintenance_work_mem defaults by 4x X-Git-Tag: REL9_4_BETA1~422 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=848ae330a497b4d430d93bd813f93c40d2bb0157;p=postgresql Increase work_mem and maintenance_work_mem defaults by 4x New defaults are 4MB and 64MB. --- diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 4dc1277f25..91a601559f 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1213,7 +1213,7 @@ include 'filename' Specifies the amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files. The value - defaults to one megabyte (1MB). + defaults to four megabytes (4MB). Note that for a complex query, several sort or hash operations might be running in parallel; each operation will be allowed to use as much memory as this value specifies before it starts to write data into temporary @@ -1239,7 +1239,7 @@ include 'filename' Specifies the maximum amount of memory to be used by maintenance operations, such as VACUUM, CREATE INDEX, and ALTER TABLE ADD FOREIGN KEY. It defaults - to 16 megabytes (16MB). Since only one of these + to 64 megabytes (64MB). Since only one of these operations can be executed at a time by a database session, and an installation normally doesn't have many of them running concurrently, it's safe to set this value significantly larger diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 86afde17de..aa5a8757fa 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1773,7 +1773,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_KB }, &work_mem, - 1024, 64, MAX_KILOBYTES, + 4096, 64, MAX_KILOBYTES, NULL, NULL, NULL }, @@ -1784,7 +1784,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_KB }, &maintenance_work_mem, - 16384, 1024, MAX_KILOBYTES, + 65536, 1024, MAX_KILOBYTES, NULL, NULL, NULL }, diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 480c9e9797..07341e72a4 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -124,8 +124,8 @@ # per transaction slot, plus lock space (see max_locks_per_transaction). # It is not advisable to set max_prepared_transactions nonzero unless you # actively intend to use prepared transactions. -#work_mem = 1MB # min 64kB -#maintenance_work_mem = 16MB # min 1MB +#work_mem = 4MB # min 64kB +#maintenance_work_mem = 64MB # min 1MB #autovacuum_work_mem = -1 # min 1MB, or -1 to use maintenance_work_mem #max_stack_depth = 2MB # min 100kB #dynamic_shared_memory_type = posix # the default is the first option