Discussion:
FreeBSD SHMMAX
(too old to reply)
Michael Fork
2004-06-11 20:56:28 UTC
Permalink
All,

I am trying to get Postgres running on FreeBSD and am running into problems
with shared mem. Here is the postgres error messge:

FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shgmet(key=5432001, size=103407616, 03600).
HINT: This error usually means that PostgreSQL's request for a shared
memory segment exceeded available memory or swap space.
To reduce the request size (currently 103407616 bytes), reduce PostgreSQL's
shared_buffers parameter (currently 12288) and/or its max_connections
parameter (cureently 40).
The PostgreSQL documentation contains more information about shared memory
configuration.

Here is the output of sysctl (which shows there is more shared mem available
than postgres is asking for):

bash-2.05b$ sysctl -a | grep shm
kern.ipc.shmmax: 200000000
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0

and finally the IPC stats which shows nothing being used:

Message Queues:
T ID KEY MODE OWNER GROUP

Shared Memory:
T ID KEY MODE OWNER GROUP

Semaphores:
T ID KEY MODE OWNER GROUP

Any ideas why postgres won't start?

Thanks.

Michael
Reko Turja
2004-06-13 22:51:42 UTC
Permalink
Post by Michael Fork
I am trying to get Postgres running on FreeBSD and am running into problems
On my box the values defined for the kernel are as follow:

options SHMMAXPGS=65536 #For postgreSQL
options SEMMNI=40
options SEMMNS=240
options SEMUME=40
options SEMMNU=120

If my memory serves me right these values were suggested for PgSQL in
FBSD or Postgres documentation.

and the corresponding sysctls:

kern.ipc.shmmax: 268435456
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 65536

your kern.ipc.shmall seems a bit low comparing to my setup, maybe the
culprit is there. You can tune that sysctl at runtime, try if giving
it higher value helps.

-Reko

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ***@postgresql.org so that your
message can get through to the mailing list cleanly

Loading...