Thread: Running two postmasters on one host: could not create semaphores

Running two postmasters on one host: could not create semaphores

From
Edwin New
Date:

I have a requirement to run two separate postmasters on the one machine.  It looks like they compete for resources (semaphores) so won't run concurrently.

I compiled twice, specifying different ports and home directories:
       ./configure --with-java --with-pgport=6100 --prefix=/usr/local/teprpg01
       make
       etc...

       gmake distclean
       ./configure --with-java --with-pgport=6110 --prefix=/usr/local/teqapg01
       etc...

I can start either of the installed postmasters, but when I try to start them at the same time using the commands:
        /usr/local/teprpg01/bin/postmaster -D /usr/local/teprpg01/data >logfile 2>&1 &
        /usr/local/teqapg01/bin/postmaster -D /usr/local/teqapg01/data >logfile 2>&1 &

I get the error:

        FATAL:  could not create semaphores: No space left on device
        DETAIL:  Failed system call was semget(6100001, 17, 03600).
        HINT:  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 40).
        The PostgreSQL documentation contains more information about configuring your system for        PostgreSQL.

Is it a shortage of semaphores, or a competition problem between the postmasters?  Is there something else I need to do?

Thanks in advance for any help,
Edwin New
Analyst Programmer
Toll - Integrated Business Systems

Re: Running two postmasters on one host: could not create semaphores

From
Tom Lane
Date:
Edwin New <edwin_new@toll.com.au> writes:
> I get the error:

>     FATAL:  could not create semaphores: No space left on device
>     DETAIL:  Failed system call was semget(6100001, 17, 03600).
>     HINT:  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 40).
>     The PostgreSQL documentation contains more information about
> configuring your system for     PostgreSQL.

> Is it a shortage of semaphores, or a competition problem between the
> postmasters?  Is there something else I need to do?

Isn't the HINT clear enough?  Raise SEMMNI and/or SEMMNS.

            regards, tom lane