Provide better guidance for adjusting shared_buffers.
authorRobert Haas
Fri, 16 Apr 2010 21:46:07 +0000 (21:46 +0000)
committerRobert Haas
Fri, 16 Apr 2010 21:46:07 +0000 (21:46 +0000)
doc/src/sgml/config.sgml

index 32c087dc30a05ed60901fd3900c7f8d4c4708d47..986fb1aca45eb34fa6728a254c572dc09dcaefee 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
   Server Configuration
@@ -784,9 +784,32 @@ SET ENABLE_SEQSCAN TO OFF;
         This setting must be at least 128 kilobytes.  (Non-default
         values of BLCKSZ change the minimum.)  However,
         settings significantly higher than the minimum are usually needed
-        for good performance.  Several tens of megabytes are recommended
-        for production installations.  This parameter can only be set at
-        server start.
+        for good performance.  This parameter can only be set at server start.
+       
+
+       
+        If you have a dedicated database server with 1GB or more of RAM, a
+        reasonable starting value for shared_buffers is 25%
+        of the memory in your system.  There are some workloads where even
+        large settings for shared_buffers are effective, but
+        because PostgreSQL also relies on the
+        operating system cache, it is unlikely that an allocation of more than
+        40% of RAM to shared_buffers will work better than a
+        smaller amount.  Larger settings for shared_buffers
+        usually require a corresponding increase in
+        checkpoint_segments, in order to spread out the
+        process of writing large quantities of new or changed data over a
+        longer period of time.
+       
+
+       
+        On systems with less than 1GB of RAM, a smaller percentage of RAM is
+        appropriate, so as to leave adequate space for the operating system.
+        Also, on Windows, large values for shared_buffers
+        aren't as effective.  You may find better results keeping the setting
+        relatively low and using the operating system cache more instead.  The
+        useful range for shared_buffers on Windows systems
+        is generally from 64MB to 512MB.