From 0f73aae13def660371c34c8feda6e684e6366bdb Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 22 Jan 2011 20:31:24 -0500 Subject: Allow the wal_buffers setting to be auto-tuned to a reasonable value. If wal_buffers is initially set to -1 (which is now the default), it's replaced by 1/32nd of shared_buffers, with a minimum of 8 (the old default) and a maximum of the XLOG segment size. The allowed range for manual settings is still from 4 up to whatever will fit in shared memory. Greg Smith, with implementation correction by me. --- doc/src/sgml/config.sgml | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'doc/src') diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 8e2a2c5d736..570c7c3b7de 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1638,12 +1638,25 @@ SET ENABLE_SEQSCAN TO OFF; - The amount of memory used in shared memory for WAL data. The - default is 64 kilobytes (64kB). The setting need only - be large enough to hold the amount of WAL data generated by one - typical transaction, since the data is written out to disk at - every transaction commit. This parameter can only be set at server - start. + The amount of shared memory used for WAL data that has not yet been + written to disk. The default setting of -1 selects a size equal to + 1/32nd (about 3%) of , but not less + than 64kB nor more than the size of one WAL + segment, typically 16MB. This value can be set + manually if the automatic choice is too large or too small, + but any positive value less than 32kB will be + treated as 32kB. + This parameter can only be set at server start. + + + + The contents of the WAL buffers are written out to disk at every + transaction commit, so extremely large values are unlikely to + provide a significant benefit. However, setting this value to at + least a few megabytes can improve write performance on a busy + server where many clients are committing at once. The auto-tuning + selected by the default setting of -1 should give reasonable + results in most cases. -- cgit v1.2.3