I have a server running CentOS5 with 6gb of memory that will run postgres 8.3 exclusively. I would like to allocate 4gb of the memory to shared buffers for postgres. I have modified some kernel settings as follows:
I can set the postgres config to shared_buffers = 2700MB but no higher. If I try shared_buffers = 2750MB the server fails to start with a message it cannot allocate memory:
2010-01-29 11:24:39 EST FATAL: shmat(id=1638400) failed: Cannot allocate memory
Is there some other setting that could be limiting the amount I can allocate?
Excerpt from postgresql.conf:
# - Memory -
shared_buffers = 2750MB # min 128kB or max_connections*16kB # (change requires restart) temp_buffers = 32MB # min 800kB max_prepared_transactions = 10 # can be 0 or more # (change requires restart) # Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory # per transaction slot, plus lock space (see max_locks_per_transaction). work_mem = 2MB # min 64kB maintenance_work_mem = 32MB # min 1MB #max_stack_depth = 2MB # min 100kB