Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings - Mailing list pgsql-general

From Rick Apichairuk
Subject Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings
Date
Msg-id 9776bb660501301326565859a3@mail.gmail.com
Whole thread Raw
In response to Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings  (Richard Poole <rp@guests.deus.net>)
Responses Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings  ("Jim C. Nasby" <decibel@decibel.org>)
Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings  (Chris <pglist@gmail.com>)
List pgsql-general
On Sun, 30 Jan 2005 20:50:21 +0000, Richard Poole <rp@guests.deus.net> wrote:
> On Sun, Jan 30, 2005 at 03:21:25PM -0500, Rick Apichairuk wrote:
>
> > I am trying to increase the number of max_connections to 200 and found
> > out I couldn't even start postgresql. So I tried to increase
> > max_connections gradually (currently at 50 from 40 default) and adjust
> > shared memory settings along the way. Even at 50 max_connections, I
> > still cannot get postgresql to start.
> >
> > The following is the error message I receive:
> >
> > pgsql FATAL:  could not create shared memory segment: Invalid argument
> > DETAIL:  Failed system call was shmget(key=5432001, size=35323904,
> > 03600).
>
> > To reduce the request size (currently 35323904 bytes),
>
> > kern.ipc.shmmax: 33554432
>
> Looks like the request size is just higher than shmmax. The majority of
> the request is for the shared buffers, so if you can't increase shmmax
> any more you can reduce your shared buffers downwards from 4096 and this
> will give you some room for more connections.
>
>
> Richard
>

Thanks... I missed that completely (need sleep!). I will try to bump
up my SHMMAXPGS from 262144 to 400000.

Is the shared_buffers per process? The reason I ask is the formula
given on http://www.postgresql.org/docs/7.4/static/kernel-resources.html
for calculating how much SHMMAX you need is:

SHMMAX = 250 kB + 8.2 kB * shared_buffers + 14.2 kB * max_connections
up to infinity

If it were per process (connection) shouldn't it be:

SHMMAX = (250 kB + 8.2 kB * shared_buffers + 14.2 kB) *
max_connections up to infinity

Also the examples for FreeBSD are:

options         SYSVSHM
options         SHMMAXPGS=4096
options         SHMSEG=256

options         SYSVSEM
options         SEMMNI=256
options         SEMMNS=512
options         SEMMNU=256
options         SEMMAP=256

How many connections is this supposed to support?

Thanks in advance.

pgsql-general by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: FreeBSD 5.2.1, postgresql 7.4.5 and shared memory settings
Next
From: "Jim C. Nasby"
Date:
Subject: Re: changing sort_mem on the fly?