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@interactdirect.com>:
> 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
>
>