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.