Subject: Re: postgre semaphores
To: Andy Ruhl <acruhl@gmail.com>
From: Jebus <lordjebus@gmail.com>
List: port-cobalt
Date: 11/30/2004 11:40:51
How do I set these kernel parameters ?


On Mon, 29 Nov 2004 17:59:17 -0700, Andy Ruhl <acruhl@gmail.com> wrote:
> On Mon, 29 Nov 2004 15:21:20 -0500, Jebus <lordjebus@gmail.com> wrote:
> 
> 
> > I am trying to get postgre installed and this is the error I am
> > getting when trying to init the db.
> >
> > creating template1 database in /usr/pkg/pgsql/data/base/1...
> > IpcSemaphoreCreate: semget(key=4, num=17, 03600) failed: No space left
> > on device
> >
> > This error does *not* mean that you have run out of disk space.
> >
> > It occurs when either the system limit for the maximum number of
> > semaphore sets (SEMMNI), or the system wide maximum number of
> > semaphores (SEMMNS), would be exceeded.  You need to raise the
> > respective kernel parameter.  Alternatively, reduce PostgreSQL's
> > consumption of semaphores by reducing its max_connections parameter
> > (currently 1).
> >
> > I THINK I understand the error but have noo clue how to fix it.
> 
> Yeah. SEMMNI and SEMMNS are kernel parameters. Look in the postgres
> manual (admin manual I think?) around the area where they say runtime
> environment. Those kernel parameters need to be set. Or you can cut
> that postgres option in the postgresql.conf file.
> 
> Here's what the semaphore related options should look like:
> 
> # Standard system options
> options         KTRACE          # system call tracing support
> options         SYSTRACE        # system call vetting via systrace(1)
> options         SYSVMSG         # System V message queues
> options         SYSVSEM         # System V semaphores
> #options        SEMMNI=10       # number of semaphore identifiers
> options         SEMMNI=256      # number of semaphore identifiers
> #options        SEMMNS=60       # number of semaphores in system
> options         SEMMNS=512      # number of semaphores in system
> #options        SEMUME=10       # max number of undo entries per process
> options         SEMUME=256      # max number of undo entries per process
> #options        SEMMNU=30       # number of undo structures in system
> options         SEMMNU=256      # number of undo structures in system
> options         SYSVSHM         # System V shared memory
> #options        SHMMAXPGS=1024  # 1024 pages is the default
> options         SHMMAXPGS=4096  # 1024 pages is the default
> options         P1003_1B_SEMAPHORE # p1003.1b semaphore support
> #options        LKM             # loadable kernel modules
> #options        NTP             # network time protocol
> options         USERCONF        # userconf(4) support
> #options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
> options         SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel
> 
> # Added by Andy for pgsql tuning
> options         SEMMAP=256
> 
> Note that I just comment out the default line and then make one that's
> the recommended value by postgresql.
> 
> Also, I haven't run postgres for a while now since it doesn't run all
> that great on the Qube.
> 
> Andy
>