shared_buffers¶
Parameter Type: Integer
Default Value: 32MB
Range: 128kB to system dependent
Minimum Scope of Effect: Cluster
When Value Changes Take Effect: Restart
Required Authorization to Activate: EPAS service account
Sets the amount of memory the database server uses for shared memory
buffers. The default is typically 32 megabytes (32MB), but might be less
if your kernel settings will not support it (as determined during
initdb). 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.
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 Advanced Server 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.
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 (15%
of memory is more typical in these situations). 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.
Increasing this parameter might cause Advanced Server to request more
System V shared memory than your operating system’s default
configuration allows. See the section Shared Memory and Semaphores
in the PostgreSQL Core Documentation for information on how to adjust
those parameters, if necessary.