When you start a PostgreSQL server, it allocates a fixed-size block of shared memory through which all access to the information in the database passes. In addition, each client that connects to memory uses up their own bit of memory, expanding it as they use resources, such as sorting space and storing data about pending transactions to commit.
Some settings in the database can be adjusted by the clients after they connect. For example, the work_mem setting, a limiter on how much memory can be used for sorting, can be increased by a client after they connect. These allocations use non-shared memory, and tuning them is covered in the next chapter.
The major component to the shared memory used by the server is a large block allocated for caching blocks, read from and written to the database. This is set by a parameter named shared_buffers. Monitoring...