You are probably running 32bit OS. So the problem is that the OS cannot allocate more than 3G of memory continuous . Then the only solution is to migrate to a 64bit OS. 2010/1/29 **Rod MacNeil <rmacneil@xxxxxxxxxxxxxxxxxx>: > Hi All, > > 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: > > shmall 1048576 pages 4,294,967,296 bytes > shmmax 4,294,967,295 bytes > > 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 > > > Any help appreciated, Thanks > > Rod > > -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance