FreeBSD SHMMAX

Lists: pgsql-admin
From: "Michael Fork" <mfork00(at)yahoo(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: FreeBSD SHMMAX
Date: 2004-06-11 20:56:28
Message-ID: cad69n$1fh6$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-admin

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


From: Reko Turja <ignatz(at)www(dot)liukuma(dot)net>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: FreeBSD SHMMAX
Date: 2004-06-13 22:51:42
Message-ID: 20040614015053.O21833@www.liukuma.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-admin

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

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